Media clip auditioning used to evaluate uncommitted media content

ABSTRACT

A computer readable medium (CRM) storing a media editing application for creating media presentations is described. The application includes a graphical user interface (GUI). The GUI has (1) a display area for displaying a composite presentation that the application creates by compositing a plurality of media clips, (2) a composite display area for displaying graphical representations of a set of media clips that are part of the composite presentation, (3) an audition display area for displaying graphical representations of a set of media clips that are candidates for adding to the composite presentation at a particular location, and (4) an audition tool for creating an audition set for a particular location in the composite display area, where the audition set is a user modifiable set of clips, each of which is for individual placement at the particular location for inclusion in the composite presentation.

FIELD OF THE INVENTION

The present invention relates to a media editing tool that allowsmodification and playback of multiple sources of media content that arecandidates for a same location in a media project.

BACKGROUND OF THE INVENTION

Digital graphic design, image editing, audio editing, and video editingapplications (hereafter collectively referred to as media contentediting applications or media editing applications) provide graphicaldesigners, media artists, and other users with the necessary tools tocreate a variety of media content. Examples of such applications includeFinal Cut Pro® and iMovie®, both sold by Apple Computer, Inc. Theseapplications give users the ability to edit, combine, transition,overlay, and piece together different media content in a variety ofmanners to create a resulting media project. The resulting media projectspecifies a particular sequenced composition of any number of text,audio clips, images, or video content that is used to create a mediapresentation.

Various media editing applications facilitate such composition throughelectronic means. Specifically, a computer or other electronic devicewith a processor and computer readable storage medium executes the mediacontent editing application. In so doing, the computer generates agraphical interface whereby designers digitally manipulate graphicalrepresentations of the media content to produce a desired result.

One difficulty in media editing is that a user cannot easily evaluatealternatives to existing content in the context of the media projectwithout repeatedly modifying the existing project data. At any giventime, the user may wish to preview several potential additions to theproject before committing any particular addition to the project.

FIG. 1 illustrates a typical graphical user interface (“GUI”) 100 of amedia editing application. Specifically, this figure illustrates the GUI100 at four different stages 110-140: a first stage 110 that is beforethe user has evaluated any alternatives to a particular clip 150 in theexisting content, a second stage 120 that is after a first alternativeclip 155 has replaced an existing clip 150 in the composite project, athird stage 130 that is after a second alternative clip 160 has replacedthe first alternative clip 155 in the composite project, and a fourthstage 140 that is after a third alternative clip 165 has replaced thesecond alternative clip 160 in the composite project. As shown in thefirst stage 110, the GUI 100 includes a timeline 170 that includesvarious media clips 150, and 180-190. In this example, a user wishes toevaluate several options for the location of the timeline 170 occupiedby the “Video_(—)2” clip 150. The operations the user performs will bedescribed in reference to the four stages 110-140 illustrated in FIG. 1.

The first stage 110 illustrates the GUI 100 after the user has loaded aparticular composite project. In this stage, the user deletes the clip150 from the timeline 170 and adds another clip in its place.

The second stage 120 shows the results of this exchange of clips. Theoriginal clip 150 has been deleted in the timeline 170 and the“Video_(—)3” clip 155 has been added in its place. In this stage, theuser deletes the replacement clip 155 from the timeline 170 and addsanother clip in its place.

By replacing the “Video_(—)2” clip 150, the “Video_(—)2” clip (or areference thereto) is removed from the project data and any dataassociated with the “Video_(—)2” clip is also lost. This associated datamay include video effects data, start and stop points, audioenhancements, etc. Thus, if the user wishes to revert to the project asshown in the first stage 110, the user must delete the “Video_(—)3” clip155 and add the previously-deleted “Video_(—)2” clip 150 (e.g., bymanually replacing the content, performing a series of “undo”operations, or some other way). In addition, after restoring the“Video_(—)2” clip the user may have to trim the content, add effects, orperform other editing operations to return the project to the state itwas in before evaluating the “Video_(—)3” clip 155. Furthermore, theuser must repeat similar steps in order to evaluate other potentialchanges to the media project, as described below.

The third stage 130 shows the results of the exchange of clips performedin the second stage 120. As shown in the third stage 130, the firstreplacement clip 155 has been removed from the timeline 170 and the“Video_(—)4” clip 160 has been inserted in its place. As above, if theuser wishes to revert to the project as shown in the first stage 110 orthe second stage 120, the user must delete the “Video_(—)4” clip 160 andadd one of the previously-deleted clips 150-155 in its place. In thisstage, the user deletes the second replacement clip 160 from thetimeline 170 and adds another clip in its place.

The fourth stage 140 shows the results of the exchange of clipsperformed in the third stage 130. As shown in the fourth stage 140, thesecond replacement clip 160 has been removed from the timeline 170 andthe “Video_(—)5” clip 165 has been inserted in its place. As above, ifthe user wishes to revert to the project as shown in the first stage110, second stage 120, or the third stage 130, the user must delete the“Video_(—)5” clip 165 and add one of the previously-deleted clips150-160 in its place.

Thus, there is a need for a media editing application that allows a userto preview multiple candidates for the same location in a media projectand resulting media presentation without iteratively deleting contentand adding different content in its place.

SUMMARY OF THE INVENTION

For a media editing application that creates composite presentations,some embodiments of the invention provide a novel audition feature thatallows a user to examine and maintain several different clips that arecandidates for addition for the same location in a compositepresentation. In some embodiments, a user can also use this auditionfeature to preview an audition clip in a composite presentation (e.g.,preview its location and watch it in a preview display of thepresentation) without adding the audition clip to the compositepresentation.

The media editing application of some embodiments includes a compositedisplay area (e.g., an area with multiple tracks that span a timeline)for displaying graphical representations of the media clips that form acomposite presentation. In some of these embodiments, the auditionfeature allows a user to maintain one particular clip in the compositedisplay area while also keeping track of other clips that the user hasspecifically designated as candidates for replacing the particular clipin the composite display area. These other clips will be referred tobelow as candidate audition clips, while the particular clip in thecomposite display area that has a set of associated candidate auditionclips will be referred to as a composite-target clip.

The audition feature in some embodiments allows the user to keep trackof the candidate audition clips by listing or representing them in aseparate audition display area in the media editing application's userinterface (UI). Specifically, this separate audition display area listsor displays representations (e.g., thumbnail images) of the associatedset of candidate audition clips for a particular composite-target clipthat has been selected in the composite display area. In someembodiments, the audition display area also includes a representation ofthe composite-target clip, or a listing of this clip, in order toprovide a complete presentation of the set of choices for one locationin the composite project; however, some of these embodiments distinguishthe visual appearance of the composite-target clip representation in theaudition display area from the representations of the other candidateclips in this area, in order to signify that the composite-target clipis the candidate clip that is currently represented in the compositedisplay area. Different embodiments implement the separate audition areadifferently. Examples of such different implementations include anaudition display area that is always open in the application's UI, isopened through a set of menu commands, is opened through drop-down orpop-up menu operations, etc.

Different embodiments allow different types of clips to becomposite-target clips (i.e., clips represented in the composite displayarea with an associated set of candidate audition clips in the auditiondisplay area). Some embodiments only display clips in the compositedisplay area that are part of the composite presentation that theapplication is editing or producing. In such embodiments, thecomposite-target clips can only be “committed clips,” which are clipsthat are part of the composite presentation that is graphicallyrepresented in the composite display area.

Other embodiments allow the composite display area to include anddisplay graphical representations of “preview clips,” which are clipsthat a user adds to a composite display area to preview the clipswithout adding these clips to the composite presentation. In some suchembodiments, the composite-target clips are preview clips. In thecomposite display area, some embodiments use a different graphicalrepresentation for preview clips than for committed clips that are beingconcurrently represented in the composite display area, in order toallow a user to distinguish preview and committed clips in this area.Even though preview clips are not part of the composite presentation,some embodiments allow the preview clips in the composite display areato supersede the committed clips in a preview of the compositepresentation that is displayed in a preview display area of the mediaediting application.

Some embodiments allow a user to place or move a preview clip to an areaof a track that holds committed clips. In some of these embodiments, apreview clip would change the attribute of a committed clip that itoverlaps on the same track (e.g., it pushes the committed clip along thetimeline or deletes it from the track). In other embodiments, such apreview clip does not change the attribute of committed clip that itoverlaps (e.g., does not change the committed clip's positions along thetimeline or tracks) in the composite display area, as the preview clipis not part of the composite presentation. However, to distinguishpreview and committed clips in the composite display area, some suchembodiments use different graphical representation for the preview andcommitted clips as mentioned above.

Some embodiments allow composite-target clips to be either committed orpreview clips. Irrespective of whether a composite-target clip is acommitted or preview clip, the user can use the audition feature toiteratively swap the composite-target clip with its associatedindividual audition clips that are listed or represented in the auditiondisplay area. In this manner, the user can use the audition feature toexamine different candidate audition clips for the role of thecomposite-target clip in the composite display area, and preview eachnew composite-target clip in the preview of the composite presentationthat is provided in the application's preview display area. This, inturn, allows the user to determine which, if any, of the candidateaudition clips is ideal for inclusion in the composite presentation.When the candidate audition clip that the user identifies for inclusionin the composite presentation is a preview clip, the user has to changethe designation of this clip to a committed clip in order to include itin the composite presentation.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates a typical media editing application.

FIG. 2 illustrates a graphical user interface (“GUI”) of a media editingapplication with an audition feature of some embodiments.

FIG. 3 illustrates the GUI of some embodiments before the auditionfeature has been invoked.

FIG. 4 illustrates the GUI of some embodiments after a user has selecteda particular clip to be added to the media project as a composite-targetclip.

FIG. 5 illustrates the GUI after a user has activated the auditionfeature and the audition feature has been partially invoked.

FIG. 6 illustrates the GUI after the audition feature of someembodiments has been fully invoked.

FIG. 7 illustrates an alternative to the fourth stage of userinteraction shown in FIG. 6 that is after the audition feature of someembodiments has been fully invoked and the audition clip is added as acommitted clip.

FIG. 8 illustrates the GUI after an alternative audition feature of someembodiments has been invoked.

FIG. 9 illustrates the GUI of some embodiments before the auditionfeature has been invoked.

FIG. 10 illustrates the GUI of some embodiments after a user hasselected a particular clip and positioned the clip over a particularlocation in the composite display area.

FIG. 11 illustrates the GUI after the alternative audition feature ofsome embodiments has been invoked.

FIG. 12 illustrates the GUI of some embodiments after a user hasselected and dragged a clip to a location over the composite displayarea using the cursor as described above in reference to FIG. 9.

FIG. 13 illustrates the GUI of some embodiments after an alternativeedit style of some embodiments has been invoked when adding an auditionclip.

FIG. 14 illustrates the GUI of some embodiments after the alternativeaudition feature of some embodiments has been invoked.

FIG. 15 illustrates the GUI of some embodiments after the user hasactivated a pull-down list selection item using a cursor selectionoperation.

FIG. 16 illustrates the GUI of some embodiments after the auditionfeature has been invoked, and an audition clip has been added to the setof candidate audition clips.

FIG. 17 illustrates the GUI of some embodiments after the user hasselected a different collection of clips using a media library selectioncontrol.

FIG. 18 illustrates the GUI of some embodiments after the user hasselected a clip from the media library to add as an audition clip.

FIG. 19 illustrates the GUI of some embodiments after a second clip hasbeen added to the set of candidate audition clips.

FIG. 20 illustrates the GUI of some embodiments after the user hasselected a clip from the media library to add as a candidate auditionclip.

FIG. 21 illustrates the GUI of some embodiments after a third clip hasbeen added to the set of candidate audition clips.

FIG. 22 illustrates the GUI of some embodiments after the user hasselected a clip from the media library to add as a candidate auditionclip.

FIG. 23 illustrates the GUI of some embodiments after the user hasselected a group of clips from the media library to add as candidateaudition clips.

FIG. 24 illustrates the GUI of some embodiments after the user has addeda group of clips as candidate audition clips.

FIG. 25 illustrates an example way of creating a preview set ofcandidate audition clips in some embodiments.

FIG. 26 illustrates the GUI of some embodiments after the user hasselected a committed clip in the composite display area.

FIG. 27 illustrates the GUI of some embodiments after the user hasselected a group of clips from the media library to add to a set ofcandidate audition clips.

FIG. 28 illustrates the GUI of some embodiments after the user hasselected a group of clips from the media library to add as candidateaudition clips.

FIG. 29 illustrates the GUI of some embodiments after the user has addeda group of clips to the audition display area as candidate auditionclips.

FIG. 30 illustrates the GUI of some embodiments after the alternativeaudition feature of some embodiments has been invoked.

FIG. 31 illustrates the GUI of some embodiments after the user hasactivated a pull-down list selection item using a cursor selectionoperation.

FIG. 32 illustrates the GUI of some embodiments after the user hasactivated the pull-down list selection item using a cursor selectionoperation.

FIG. 33 illustrates an example of a conceptual process that someembodiments use to create a set of audition candidate clips.

FIG. 34 conceptually illustrates the data structures used by process toperform at least some of its operations in some embodiments.

FIG. 35 illustrates an example of a conceptual process that someembodiments perform when a request is made to add media content to thecomposite display area.

FIG. 36 illustrates the GUI of some embodiments after the auditionfeature has been invoked, and a particular set of candidate auditionclips has been selected.

FIG. 37 illustrates the GUI of some embodiments after the user hasactivated the candidate audition clip set selection item.

FIG. 38 illustrates the GUI of some embodiments after the user hasactivated the candidate audition clip set selection item and theaudition display area has been updated to show several sets of candidateaudition clips.

FIG. 39 illustrates the GUI of some embodiments after the user hasselected an alternative set of candidate audition clips.

FIG. 40 illustrates the GUI of some embodiments after the auditiondisplay area has been updated based on a selection of a set of candidateaudition clips.

FIG. 41 illustrates the GUI of some embodiments after the user hasselected a particular audition clip in the set of candidate auditionclips.

FIG. 42 illustrates a live-edit operation of moving a clip from onetrack to another in some embodiments.

FIG. 43 illustrates a live-edit operation of moving a clip along a trackin some embodiments.

FIG. 44 illustrates a live-edit operation of replacing one clip withanother in some embodiments.

FIG. 45 illustrates the GUI of some embodiments after a user has invokedthe audition feature and selected an audition clip for conversion.

FIG. 46 illustrates the GUI of some embodiments after the user hasselected the mark in some embodiments.

FIG. 47 illustrates the GUI of some embodiments after a user has invokedthe audition feature in some embodiments.

FIG. 48 illustrates the GUI of some embodiments after the user hasselected the audition selection item.

FIG. 49 illustrates the GUI of some embodiments after the user hasde-invoked the audition feature.

FIG. 50 illustrates the GUI of some embodiments after the auditionfeature has been invoked and a particular candidate audition clip hasbeen selected.

FIG. 51 illustrates the GUI of some embodiments after the user hasselected multiple candidate audition clips and invoked preview playback.

FIG. 52 illustrates the GUI of some embodiments after a user hasselected multiple candidate audition clips from a set of candidateaudition clips displayed in the audition display area.

FIG. 53 illustrates the GUI of some embodiments after the user hasde-selected a candidate audition clip in some embodiments.

FIG. 54 illustrates a conceptual process used by some embodiments toperform the preview playback operation of some embodiments.

FIG. 55 illustrates some embodiments that include a timeline, and acorresponding preview playback frame set and/or segment table used toperform preview playback.

FIG. 56 illustrates a conceptual process of some embodiments used togenerate the segment table and preview playback frame set from timelinedata.

FIG. 57 conceptually illustrates the software architecture of a mediaediting application of some embodiments.

FIG. 58 conceptually illustrates a process used to receive and display amodification to a project and commit the modification to the compositemedia presentation.

FIG. 59 conceptually illustrates a process of some embodiments formanufacturing a computer readable medium that stores a computer program.

FIG. 60 illustrates an alternative GUI of the media editing applicationof some embodiments.

FIG. 61 illustrates the GUI after an audio clip has been added to aproject as an audition clip.

FIG. 62 illustrates a computer system with which some embodiments of theinvention are implemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description of the invention, numerousdetails, examples, and embodiments of the invention are set forth anddescribed. However, it will be clear and apparent to one skilled in theart that the invention is not limited to the embodiments set forth andthat the invention may be practiced without some of the specific detailsand examples discussed.

For a media editing application that creates composite presentations bycombining several media clips, some embodiments of the invention providea novel audition feature that allows a user to examine and maintainseveral different clips that are candidates for addition at the samelocation in a composite presentation. In some embodiments, a user canalso use this audition feature to preview an audition clip in acomposite presentation (e.g., preview its location and watch it in apreview display of the presentation) without adding the audition clip tothe composite presentation. In some embodiments, media clips are anykind of clip that can be used to create a composite presentation.Examples of such media clips include audio clips, video clips, textoverlays, pictures, and/or other media.

For some embodiments of the invention, FIG. 2 illustrates a graphicaluser interface (“GUI”) 200 of a media editing application with such anaudition feature. Specifically, this figure illustrates the GUI 200 atsix different stages. The first three of these stages 205, 210, and 215correspond to the addition of three different video clips as auditionclips for a composite presentation. The next three stages 220, 225 and230 correspond to the iterative re-examination of two of the auditionclips and the movement of one of the audition clips along the time line,in order to identify the audition clip to include in the compositepresentation at a particular location in the composite presentation.Each of these stages will be further described below. However, beforethis description, the elements are GUI 200 are introduced.

As shown FIG. 2, the GUI 200 includes a preview display area 235, amedia library 240, a composite display area 245, an audition selectionGUI item 250, an audition display area 255, and one or more tracks(e.g., track 260) in the composite display area. The preview displayarea 235 displays a preview of a composite presentation that theapplication creates by compositing several media clips.

The media library 240 is an area in the GUI 200 through which theapplication's user can select media clips to add to a presentation thatthe user is compositing with the application. In the example of FIG. 2,the clips in the media library are represented as thumbnails that can beselected and added to the composite display area 245 (e.g., through adrag-and-drop operation or a menu selection operation). The clips in themedia library may also be represented as a list, a set of icons, or someother representation that allows a user to view and select the variousclips in the library. In some embodiments, the media library 240 mayinclude audio clips, video clips, text overlays, pictures, and/or othermedia.

The composite display area 245 provides a visual representation of thecomposite presentation being created by the user. Specifically, itdisplays one or more geometric shapes that represent one or more mediaclips that are part of the composite presentation. Media clips that arepart of the composite presentation are referred to below as committedclips. As further described below, the media editing application of someembodiments allows media clips to be added to the composite display areaas “preview clips.” Preview clips are media clips that are candidatesfor adding to the composite presentation as they have not yet been addedto the composite presentation.

As they are candidate for adding to the composite presentation, previewclips are not part of the composite presentation that is beingconcurrently represented in the composite display area. The mediaediting application of some embodiments, however, allows preview clipsto be included in the display presentation of the composite project thatis provided in the preview display area 235 (i.e., allows a user towatch and/or listen to the composite project, with the candidate clipsincluded, in a preview display area 235).

Some embodiments use a different graphical representation for previewclips than for committed clips in order to allow a user to distinguishpreview and committed clips in the composite display area. Even thoughpreview clips are not parts of the composite presentation, someembodiments allow the preview clips in the composite display area tosupersede the committed clips in a preview of the composite presentationthat is displayed in the preview display area 235 of the media editingapplication. Having a preview clip appear in the composite presentationinstead of a committed clip without modifying the underlying compositepresentation allows a user to evaluate and/or modify the preview clipwithout making changes to the composite project. This is helpful insaving time in making modifications to the underlying composite projectthat later prove to be undesirable. Moreover, such modifications in someinstances might prove difficult in reversing accurately when they proveto be unwanted later.

In the example illustrated in FIG. 2, the composite display area 245 isan area that includes multiple tracks that span a timeline. One or moremedia clips can be placed on each track. In some embodiments, no twocommitted clips can overlap on the same track, but, as described aboveand below, a preview clip can overlap one or more committed clips on aparticular track in some embodiments.

In some embodiments, the audition feature allows a user to maintain oneparticular audition clip in the composite display area 245 while alsokeeping track of other audition clips that the user has specificallydesignated as candidates for replacing the particular audition clip inthe composite display area. These other clips will be referred to belowas candidate audition clips, while the particular audition clip in thecomposite display area that has a set of associated candidate auditionclips will be referred to as a composite-target clip.

The audition display area 255 is the area that the audition feature ofsome embodiments uses to keep track of the candidate audition clips. Inthe example illustrated in FIG. 2, this display area provides agraphical representation of the candidate audition clips. Specifically,for a particular composite-target clip that is selected in the compositedisplay area, the audition display area of some embodiments displaysgraphical representations (e.g., thumbnail images) of the associated setof candidate audition clips. In other embodiments, the audition displayarea provides just a list view, an icon view, or some other view of theassociated set of candidate clips.

In some embodiments, the audition display area also includes arepresentation of the composite-target clip, in order to provide acomplete presentation of the set of choices for one location in thecomposite project. However, some of these embodiments distinguish thevisual appearance of the composite-target clip representation in theaudition display area from the representations of the other candidateclips in this area, in order to signify that the composite-target clipis the candidate clip that is currently represented in the compositedisplay area.

In the example illustrated in FIG. 2, the audition display area is shownas a window that is located above the composite display area when thewindow is opened. This window is opened differently in differentembodiments. For instance, this window is always open in theapplication's UI in some embodiments, while it is opened through a setof menu commands in other embodiments. In yet other embodiments, thiswindow is a drop-down window that opens upon a user's selection. Stillother embodiments implement the audition display window as a pop-upwindow that opens up upon a user's command. One of ordinary skill willrealize that many other implementations for the audition display areaare possible.

The audition selection item 250 is a conceptual illustration of one ormore UI items that allows the media editing application to implement itsaudition feature. Different embodiments of the invention implement thisUI item differently. Some embodiments implement it as an audition UIbutton, others as an audition command that can be selected in apull-down or drop-down menu, and still others as an audition commandthat can be invoked through one or more keystroke operations. Yet otherembodiments allow the user to access the audition feature through two ormore of such UI implementations or other UI implementations. In someembodiments, a user of the application can use the audition selectionitem 250 to add a particular media clip that is in the media library 240to the composite display area 245 as a composite-target clip.

Different embodiments allow different types of clips to becomposite-target clips (i.e., clips represented in the composite displayarea with an associated set of candidate audition clips). Someembodiments only display clips in the composite display area that arepart of the composite presentation that the application is editing orproducing. In such embodiments, the composite-target clips can only becommitted clips.

Other embodiments allow the composite display area to include anddisplay graphical representations of preview clips. In some suchembodiments, the composite-target clips are preview clips. Accordingly,in some embodiments, a track (e.g., track 260) receives and holds thegraphical representation of one or more preview clips. In some of theseembodiments, a preview clip would change the attribute of a committedclip that it overlaps on the same track (e.g., it pushes the committedclip along the timeline or deletes it from the track). In otherembodiments, such a preview clip does not change the attribute ofcommitted clip that it overlaps (e.g., does not change the committedclip's positions along the timeline or tracks) in the composite displayarea, as the preview clip is not part of the composite presentation.

Some embodiments allow composite-target clips to be either committed orpreview clips. Irrespective of whether a composite-target clip is acommitted or preview clip, the user can use the audition feature toiteratively swap the composite-target clip with its associatedindividual audition clips that are listed or represented in the auditiondisplay area. In this manner, the user can use the audition feature toexamine different candidate audition clips for the role of thecomposite-target clip in the composite display area, and preview eachnew composite-target clip in the preview of the composite presentationthat is provided in the application's preview display area. This, inturn, allows the user to determine which, if any, of the candidateaudition clips is ideal for inclusion in the composite presentation.When the candidate audition clip that the user identifies for inclusionin the composite presentation is a preview clip, the user has to changethe designation of this clip to a committed clip in order to include itin the composite presentation.

The operation of the GUI 200 will now be described by reference to thestate of this GUI during the first through sixth stages 205-230 that areillustrated in FIG. 2. In the first stage 205, the composite displayarea 245 displays a composite presentation after the audition featurehas been invoked using the audition selection item 250. As shown, thecomposite display area includes two non-audition clips. These two clipsare an audio clip 265, and a video clip 270. A user might have addedthese two clips to the composite presentation by selecting them from themedia library 240, or the user might have opened a previously definedcomposite project that included these two clips. In addition to the twonon-audition clips 265-270, a clip has been selected from the medialibrary 240 and added as an audition clip. The audition clip has beenadded to the audition display area 255 as a candidate audition clip andadded to track 260 in the composite display area 245 as acomposite-target clip 275.

Clips may be added as audition clips (i.e., composite-target clipsand/or candidate audition clips) in several different ways. Forinstance, the audition selection button 250 can be used in someembodiments to add a particular media clip to the composite display areaas an audition clip. For instance, in some embodiments, the user canfirst select the audition selection button. The particular media clipmay then be added to the composite display area through a click-and-dragoperation (i.e., by using a cursor-control device, such as a mouse ortrackpad, to select this clip's thumbnail representation from the medialibrary and dragging this thumbnail to the composite display area 245).As another example, a particular media clip may also be added to thecomposite display area as an audition clip by selecting an option from apull-down menu (not shown) after the selection of the clip's thumbnailin the media library.

Alternatively, or conjunctively, some embodiments allow the user tofirst select the particular clip from the media library 240 beforeselecting the audition selection button 250 to add the particular clipto the composite display area. For example, in some embodiments, theuser selects a particular clip and then selects the audition selectionbutton. Also, in lieu of or in conjunction with the audition selectionbutton 250, the GUI 200 includes in some embodiments other GUI itemsthat can be used as a substitute for the audition selection button 250.Examples of such GUI items include menu items that are displayed inpull-down menus that are accessed by selecting and opening menus in theGUI, or that are displayed in pop-up menus that are opened throughcursor control operations (e.g., right-cursor click operation orcontrol-cursor-click operations).

Some embodiments also use the audition selection button 250 or similarGUI item to change the designation of a clip in the composite displayarea from a non-audition clip to an audition clip. For instance, in somesuch embodiments, a user can select a non-audition clip and then changeits designation to an audition clip by selecting the audition selectionbutton 250 or selecting a similar UI item in a pop-up or pull-down menu.

The audition clip 275 has been added in this example as a preview clip,as indicated by using a rectangular shape that has a different colorthan the rectangles used to represent the committed audio and videoclips 265-270. This different color has been used to differentiate inthe composite display area 245 between the graphical displayrepresentations of the committed media clips from the graphical displayrepresentation of the preview clip as described above. The differentappearance of the preview and committed clips in the composite displayarea 245 allows the user to easily differentiate between the two typesof clips in the composite display area 245. In this stage 205, while theaudition feature is active, the user selects another clip from the medialibrary 240.

The second stage 210 shows the update of the composite display area 245and audition display area 255 after another clip has been selected fromthe media library 240 and added as an audition clip. As shown, thecomposite display area 245 displays the composite presentation with thetwo non-audition clips 265-270, but also with the newly-addedcomposite-target clip 280. As shown, in this example, the newly-addedcomposite-target clip has been positioned and trimmed such that itstimeline in and out points match the timeline in and out points of thereplaced clip 280. Some embodiments may position the timeline in pointof the newly-added clip, but not trim the out point (i.e., the out pointmay vary depending on the length of the clip). In some embodiments, thedecision of whether to match the timeline in and out points is made bydefault, while in other embodiments, the decision may be based on a userselection (e.g., a pull-down menu option), or some other criteria.

In this example, the composite-target clip 275 from the first stage 205has been replaced in track 260 of the composite display area 245 withthe newly-added composite-target clip 280. In some embodiments, thecomposite-target clip may not be updated when a clip is added to theaudition display area 255. In some of these embodiments, thecomposite-target clip may be updated when a user selects the particularcandidate audition clip in the audition display area 255 (e.g., byperforming a left-cursor click operation over a candidate audition cliprepresentation in the audition display area).

Although the newly-added clip 280 has replaced the previouscomposite-target clip 275 in the composite display area 245, bothaudition candidate clips are displayed in the audition display area 255.In this stage, while the audition feature is active, the user selectsanother clip from the media library 240.

The third stage 215 shows the update of the composite display area 245and audition display area 255 after a third clip has been selected fromthe media library 240 and added as an audition clip. As above, thecomposite display area 245 displays the composite presentation with thetwo non-audition clips 265-270. In addition, the composite display area245 displays the newly-added composite-target clip 285. Thecomposite-target clip 280 from the second stage 210 has been replaced intrack 260 of the composite display area 245 with the newly-addedcomposite-target clip 285. However, both audition candidate clips aredisplayed in the audition display area 255. In this stage, while theaudition feature is active, the user selects two clips (e.g., by acursor region-select command) from the audition display area 255 andinvokes playback of the preview presentation in the preview display area235 (e.g., through a GUI item such as a play control) in order toiteratively review the presentation with each of the selected clipsincluded in turn. In some embodiments, playback is automatically invokedwhenever an audition clip is added to the composite display area 245 orthe audition display area 255.

The fourth stage 220 shows the update of the audition display area 255and composite display area 245 after two clips have been selected in theaudition display area 255 and playback of the preview presentation hasbeen invoked. As shown, the composite display area 245 displays thecomposite presentation with the first selected composite-target clip275. In addition, the audition display area 255 has been updated toindicate the selection of two audition candidate clips, as shown by aselection item 290. The audition display area 255 has also been updatedto indicate that the first of the selected clips is active (i.e., thefirst of the selected clips is currently active as the composite-targetclip 275). The preview display area 235 has also been updated to reflectthe content of the currently-selected composite-target clip 275.

The fifth stage 225 shows the update of the audition display area 255and composite display area 245 after the playback of the previewpresentation has transitioned from the first of two selected clips (asindicated in the audition display area 255 by the selection shape 290)to the second of the selected clips. As shown, the composite displayarea 245 displays the composite presentation with the second selectedcomposite-target clip 280. In addition, the audition display area hasbeen updated to indicate that the second of the selected clips is nowactive. The preview display area 235 has also been updated to reflectthe content of the currently-selected composite-target clip 280.

In some embodiments, the fourth stage 220 and the fifth stage 225 may beiteratively repeated as the user reviews the preview playback displayedin the preview display area 235. In some of these embodiments, a usermay select a particular range along the timeline to be iterativelydisplayed (i.e., the user may select a particular span along thetimeline to be looped during playback). Thus, as the preview playbackreaches the end of the selected range (or, alternatively, the end of theproject's timeline if no range has been selected), the selectedcomposite-target clip from the set of selected candidate audition clips(as indicated by selection item 290) is changed to the nextcomposite-target clip in the set of selected candidate audition clips.In some embodiments, a user may manually cycle through the clips in theset of selected candidate audition clips (e.g., by selecting a UI itemsuch as a “next” button).

In this manner, the user can use the audition feature to examinedifferent candidate audition clips for the role of the composite-targetclip in the composite display area 245, and preview each newcomposite-target clip in the preview of the composite presentation thatis provided in the application's preview display area 235, in order todetermine which, if any, of the candidate audition clips is ideal forinclusion in the composite presentation.

Although this example has been illustrated with two candidate auditionclips in the set of selected candidate audition clips, the set ofselected candidate audition clips may include different numbers of clipsin different embodiments. Furthermore, instead of selecting multiplecandidate audition clips to automatically cycle through, a user mayindividually select a particular candidate audition clip prior toinvoking the preview playback feature. The user may then stop thepreview playback, select an alternative to the particular candidateaudition clip, and then re-start the preview playback.

After reviewing the preview playback in the fourth and fifth stages220-225, and while the audition feature is still active, the user maystop the preview playback, select a particular candidate audition clipfrom the audition display area 255, and move the composite-target clip280 corresponding to the selected candidate audition clip to a differentlocation along the timeline in the composite display area 245.

The sixth stage 230 shows the update of the audition display area 255and composite display area 245 after the user has selected a particularcandidate audition clip from the audition display area 255 and moved thecorresponding composite-target clip 280 to a different location alongthe timeline. As shown, the composite display area 245 displays thecomposite presentation with the selected composite-target clip 280shifted to the right (i.e., shifted to a later time in the compositepresentation). In addition, the audition display area 255 has beenupdated to indicate that the second candidate audition clip is nowactive. The preview display area 235 has also been updated to reflectthe content of the currently-selected composite-target clip 280.

Although the operations described above have been described as beingperformed in a certain order, different embodiments may performdifferent sequences of operations. For instance, in some embodiments, auser may perform a playback preview operation as described above inreference to stages four and five 220-225 before adding more clips tothe candidate audition clip set as described above in reference tostages two and three 210-215. As another example, a user may move acomposite-target clip as described above in reference to the sixth stage230 before performing a preview playback as described above in referenceto the fourth and fifth stages 220-225.

In addition, one of ordinary skill in the art will recognize that someembodiments of the media editing application may be implemented withoutsome of the specific details presented above. For instance, although theexample above described composite-target clips as preview clips, in someembodiments a committed clip may also be classified as acomposite-target clip that has an associated set of candidate auditionclips.

Several more detailed embodiments of the invention are described in thesections below. Section I provides a conceptual description of thevarious ways to invoke and use the audition feature to create and manageindividual audition clips and sets of candidate audition clips. Next,Section II describes some of the edit functions used to manipulate clipsin a composite display area once they have been added to a media projectand the process of converting audition clips to non-audition clipsbefore de-invoking the audition feature. Section III describes cyclingthrough multiple audition clips in succession. Section IV then describesthe processes, data structures, and software modules used to generate apreview of the composite project. Next, Section V describes a conceptualprocess for using the audition feature when modifying and evaluating amedia project. Section VI follows that discussion with a description ofthe process used to define and store the application. Lastly, SectionVII describes a computer system which implements some of the embodimentsof the invention.

I. Creating and Managing Audition Media

As mentioned above, some embodiments provide several differenttechniques for adding multiple candidate clips to an audition displayarea, where the multiple candidate clips are all candidates for aparticular location in the project. Sub-section ILA will describeseveral techniques for invoking the audition feature and designating acomposite-target clip by reference to FIGS. 3-13. Sub-section II.B willthen describe examples of the creation of and management of a set ofcandidate audition clips. Next, sub-section II.C describes conceptualprocesses and data structures used by some embodiments to add clips to aproject and/or create a set of candidate audition clips. Sub-section HDfollows that discussion with an example of selecting a candidateaudition clip set from a group of candidate audition clip sets that areassociated with a particular location.

A. Invoking the Audition Feature

FIGS. 3-6 illustrate one example of invoking the audition featurethrough the use of an audition selection item 310 of a GUI 300 of amedia editing application. Like the GUI 200 of FIG. 2, the GUI 300 ofFIGS. 3-6 includes (1) an audition selection item 310, (2) a medialibrary 320, (3) a preview display area 330, and (4) a composite displayarea 340 with several tracks (e.g., video track 350 and audio track 355)that span a timeline 360.

FIGS. 3-6 also illustrate the GUI 300 to include a menu bar 370 thatprovides several grouped sets of menu commands and options for the mediaediting application. In addition, these figures illustrate a cursor 380for providing feedback to a user and operating various selection buttonsor other controls included in the GUI 300. The cursor 380 also allows auser to select or manipulate various representations of content that areincluded in the GUI 300.

These figures also illustrate the composite display area 340 to includea playhead 390 for highlighting the instance in time in the compositepresentation that is being represented in the composite display area.Highlighting this instance in time is useful for a variety of reasons.For instance, when viewing a preview of the composite presentation inthe preview display area 330, the playhead 390 scrolls across thetimeline 360 to identify the location in the composite presentation inthe composite display area 340 that is being currently displayed in thepreview display area 330. Furthermore, as further described below, theplayhead 390 location can also act as an insertion point when addingclips or effects to the project.

In addition, these figures illustrate the GUI 300 to include an auditiondisplay area 510 for displaying representations of an associated set ofcandidate audition clips for a particular composite-target clip that hasbeen selected in the composite display area 340, a track 520 that iscreated to receive and hold graphical representations of one or morepreview composite-target clips, and an audition range selector 530 forselecting a particular span along the timeline 360 that will bedisplayed in the preview display area 330 when the user requests apreview playback. The implementation of the preview playback will bedescribed in more detail in Sections III-IV below. One of ordinary skillin the art will recognize that the audition feature may be implementedusing a different graphical interface, may provide more or fewercontrols, etc.

To illustrate the example of invoking the audition feature through theuse of the audition selection item 310, FIGS. 3-6 illustrate fourdifferent stages of a user's interaction with the GUI 300. FIG. 3illustrates a first stage that is before the audition feature has beeninvoked. In the first stage, the composite display area 340 displays anumber of committed clips along the timeline 360. The committed clipsinclude several audio clips and several video clips. A user might haveadded these clips from the media library 320, or the user might haveopened a previously defined composite project that included the clips.

In this stage, as shown in FIG. 3, a user selects a particular clip 395from the media library 320. The selection of clip 395 has been indicatedby displaying a thicker border around the clip and highlighting thebackground of the selected clip. In some embodiments, the user selects aparticular clip using a left-cursor click operation after positioningthe cursor 380 over the desired clip. One of ordinary skill in the artwill recognize that other operations may be used to select a particularclip from the media library 320. For instance, a user may perform acombination of keystrokes, use a hotkey to select a particular clip,etc.

FIG. 4 illustrates a second stage of user interaction that is after auser has selected a particular clip 395 to be added to the media projectas a composite-target clip. In this stage, a user activates the auditionselection item 310. As shown, the user moves the cursor 380 to alocation over the audition selection item 310 and activated this item(e.g., by left-cursor click operation). The activation of the auditionselection item 310 has been indicated by displaying a thicker borderaround the item and highlighting the background of the item.

FIG. 5 illustrates a third stage of user interaction that is after auser has activated the audition feature and the audition feature hasbeen partially invoked. As shown, this activation has caused the partialdisplay of the audition display area 510 and the new track 520 in theGUI 300 of some embodiments. In some embodiments, a new track is createdwhenever a user has not previously selected an existing track on whichto place the audition clip.

The audition display area 510 will be described in more detail insub-section I.B below. In addition, the activation of the auditionfeature has invoked the display of the audition range selector 530. Theaudition range selector defines a span along the timeline 360 to beplayed when a user invokes the preview playback of the compositepresentation. The audition range selector and its use during previewplayback will be described below in Section III.

FIG. 6 illustrates a fourth stage of user interaction that is after theaudition feature of some embodiments has been fully invoked. As shown,the selected clip 395 has been added to the fully-displayed auditiondisplay area 510 and track 520. The audition clip 610 is represented asa thumbnail image in the audition display area 510. The audition clip610 is shown with a bold border and a mark 620 indicating that theaudition clip 610 has been selected as the composite-target clip. Thecomposite-target clip 630 is represented in track 520 as a half-heightrectangle with a different color than the committed clips 640 toindicate that the clip 630 is a preview audition clip. However,different embodiments may differentiate between preview and committedclips (and/or audition and non-audition clips) in different ways, asdescribed below.

In this example, the audition display area 510 is represented as awindow pane within the GUI 300. In different embodiments, the auditiondisplay area may be represented in different ways. For instance, theaudition display area may be represented as a separate window, as a listof media, etc. In addition, different embodiments may implement thefunctionality provided by the audition display area in various ways. Forinstance, the audition display area functionality (e.g., selection of aparticular audition clip within a set) may be provided by a pop-up ordrop-down window, by a window in a menu or sub-menu item, etc.

One of ordinary skill in the art will realize that, in addition toinvoking the audition feature using the audition selection item 310, theaudition feature may be invoked in various different ways. For instance,a user may double-click a preview clip or committed clip that has a setof associated audition clips in order to invoke the audition tool ofsome embodiments. Once the audition tool has been invoked, a user mayperform different operations during the resulting audition session. Forinstance, during an audition session a user may create a new auditionset, delete an audition set, and/or modify an audition set.

FIG. 7 illustrates an alternative to the fourth stage of userinteraction shown in FIG. 6 that is after the audition feature of someembodiments has been fully invoked. As above, the selected clip 395 hasbeen added to the fully-displayed audition display area 510 and track520. As shown, the audition clip 610 is represented as a thumbnail imagein the audition display area 510. The composite-target clip 710 isrepresented in track 520 as a rectangle, similar to the non-auditionclips 640. In this example, the audition clip 710 is represented as arectangle with the same color as the committed clips 640 to indicatethat the clip 710 is a committed audition clip. As above, differentembodiments may differentiate between audition and committed clips indifferent ways, as described below.

In some embodiments, a composite-target clip may initially be placed inthe composite display area 340 as either a committed clip or a previewclip. The determination of whether to add a composite-target clip as acommitted or preview clip may be made by default (e.g., all clips mayinitially be added as preview clips), using some decision algorithm(e.g., clips that don't overlap committed clips are initially placed ascommitted clips, while clips that overlap committed clips are initiallyplaced as preview clips), or by user selection (e.g., the user ispresented with a contextual pop-up menu that queries the user as towhether the clip should be added as a composite clip or a preview clip).

Furthermore, some embodiments may include various displayrepresentations to differentiate between committed clips, auditionclips, preview clips, and/or their various combinations. For instance,in some embodiments, committed clips may be represented as rectangles ofa first color, audition clips as rectangles of a second color andpreview clips as half-height rectangles of either the first (when thepreview clip is a non-audition clip) or second color (when the previewclip is also an audition clip). As another example, committed clips maybe represented as rectangles, audition clips as rectangles with anassociated marker, and preview clips as half-height rectangles (with orwithout a marker). In addition, some embodiments may furtherdifferentiate between types of clips (e.g., audio versus video clips)using some variation of appearance (e.g., different colors, fillpatterns, shapes, etc.).

In the examples of FIGS. 6-7, the composite-target clip (630 or 710) hasbeen inserted at a location 650 defined by the playhead 390. A user mayselect a particular track and position the playhead at a particularlocation along the timeline 360 before invoking the audition featureusing the audition selection item 310 in some embodiments, thusselecting a particular location in the particular track to insert acomposite-target clip. Different embodiments may select the location toinsert a particular composite-target clip differently. For instance, auser may perform a drag-and-drop operation to select a clip from themedia library 320 and then place the composite-target clip at aparticular location in the composite display area 340. Alternatively, auser may select a pull-down or pop-menu command to insert a compositetarget clip, or use some other appropriate method (e.g., a series ofkeystrokes, a succession of cursor operations, etc.).

FIG. 8 illustrates an alternative audition feature of some embodiments.In contrast to the examples of FIG. 6-7, the audition feature of someembodiments does not automatically invoke an audition display area. Asshown in FIG. 8, the audition feature of some embodiments includes GUIitems such as a pull-down list 810 for choosing a particular candidateaudition clip as a composite-target clip, several selection items820-840 for reverting, cancelling, and committing preview and/oraudition edits, and an alternative audition range selector 850 withpre-roll and post-roll segments 860 and 870 for selecting a particularspan along the timeline 360 that will be displayed in the previewdisplay area 330 when the user requests a preview playback. Theimplementation of the preview playback will be described in more detailin Section III-IV below.

The pull-down list 810 of some embodiments may include a list of severalcandidate clips for a particular target location in the compositedisplay area 340. A user may select a particular clip from the list ofcandidate audition clips in the pull-down list 810. This selection maycause the composite-target clip to be updated in some embodiments. Inaddition, when the audition display area has been invoked, the selectionof a clip from the drop-down list may cause the clip's representation inthe composite display area to be updated. The operation of the pull-downlist 810 will be described in more detail below in reference to FIGS.14-15 and 30-32.

The selection items 820-840 allow a user to perform certain editoperations. For instance, the “revert” selection item 820 may return themedia project to it state before the user made any audition or previewedits. The “cancel” selection item 830 may allow a user to cancelaudition or preview edit operations while keeping non-preview and/ornon-audition edit operations (e.g., if a user has made preview and/oraudition edits and also trimmed or moved a committed clip, the previewand/or audition edits would be undone but the changes to the committedclip would not be undone). The “commit” selection item 840 may allow auser to commit an audition or preview edit to the project. One ofordinary skill in the art will recognize that different embodiments mayinclude different radio selection items.

The alternative audition range selector 850 performs the same functionand provides user feedback in a similar manner to audition rangeselector 530. In the example of FIG. 8, the alternative audition rangeselector 850 has been sized and placed to match the length and positionalong the timeline 360 of the composite-target clip 630. In addition,the pre-roll 860 and post-roll 870 segments have been added to the beginand end points of the alternative audition range selector 850. In someembodiments, the alternative audition range selector 850 may bepositioned and sized automatically (e.g., to match the size and positionof the composite-target clip), while in other embodiments a user mayposition or size the alternative audition range selector 850 using acursor-control operation, a series of keystrokes, or some otherappropriate method. The pre and post-roll segments 860-870 may similarlybe generated automatically in some embodiments. In some of theseembodiments, the length of the pre and post-roll segments 860-870 willbe a function of the length of the composite-target clip. In otherembodiments, a user may define the pre and post-roll segments using acursor-control or other appropriate operation. In still otherembodiments, the pre and post-roll segments may be set to a defaultlength.

In some embodiments, the audition feature causes a preview playback tobe automatically displayed in the preview display area 330 when a useradds an audition clip to a project. In some of these embodiments, theplayback would begin at the begin point determined by the pre-rollsegment 860 and continue until the end point determined by the post-rollsegment 870. In other embodiments, a user must make a selection of aplayback control (e.g., a “play” button of the GUI 300) in order toinitiate playback of the area defined by the alternative audition rangeselector 850 and the pre and post-roll segments 860-870.

FIGS. 9-11 illustrate another technique for invoking the auditionfeature and designating a composite-target clip. In the example of FIGS.9-11, a user drags a media clip to a location in the composite displayarea 340 and invokes a contextual menu using the GUI 300 of someembodiments to perform a series of cursor operations. The GUI 300 is thesame GUI 300 described above in reference to FIGS. 3-8. Also, toillustrate the example of invoking the audition feature through the useof a drag-and-hold operation, FIGS. 9-11 explain three different stagesof a user's interaction with the GUI 300.

FIG. 9 illustrates a first stage that is before the audition feature hasbeen invoked. In the first stage, the composite display area 340displays a number of committed clips along the timeline 360. Thecommitted clips include several audio clips and several video clips. Auser might have added these clips from the media library 320, or theuser might have opened a previously defined composite project thatincluded the clips.

In this stage, as shown in FIG. 9, a user selects a particular clip 395from the media library 320 and drags the clip to a location in thecomposite display area 340. The selection of clip 395 has been indicatedby displaying a thicker border around the clip and highlighting thebackground of the selected clip. In some embodiments, the user selects aparticular clip using a left-cursor click operation after positioningthe cursor 380 over the desired clip. One of ordinary skill in the artwill recognize that other operations may be used to select a particularclip from the media library 320. For instance, a user may perform acombination of keystrokes, use a hotkey to select a particular clip,etc. In addition, the clip 910 is shown in the composite display area340 as being semi-transparent to indicate that the user has not releasedthe left-cursor (i.e., the clip has not been “dropped” into thecomposite display area, and is merely “hovering” at a particularlocation).

FIG. 10 illustrates a second stage of user interaction after the userhas selected and dragged a clip to a location over the composite displayarea 340 using the cursor 380. As shown, this select-and-drag operationhas invoked a contextual pop-up menu 1010 of some embodiments. In someembodiments, a pop-up menu is invoked whenever the user drags a clip toa location over the composite display area 340 and does not release thecursor within a certain time. The pop-up menu 1010 of this example isrepresented as having particular options and/or commands, but one ofordinary skill in the art will recognize that different embodiments mayinclude different menu options and/or commands. In addition, thecontextual pop-up menu of some embodiments may include different menuoptions and/or commands based on other factors such as location withinthe composite display area 340, a combination of keystrokes performed bya user before dragging a clip over the composite display area 340, etc.

In this stage, the user selects the “overwrite audition” option 1020from the pop-up menu 1010 to add the clip 910 to the composite projectas an audition clip. The user makes this selection by moving the cursor380 to a location over the desired menu option 1020 and performing aleft-cursor click operation (after having released the left-cursor oncethe pop-up menu 1010 was invoked). As shown, moving the cursor 380 overthe overwrite audition option 1020 has caused a change in the graphicalrepresentation of the option relative to the other options or commandsin the pop-up menu 1010. The selected option may be indicated in variousways, such as a bold outline, a change in background, a change in color,etc. In some embodiments, such an option may also be selected throughany number of other techniques, such as a combination of keystrokes, apull-down menu selection, etc.

FIG. 11 illustrates a third stage of user interaction that is after analternative audition feature of some embodiments has been invoked. Asshown, the selected clip 395 has been added to track 350. Thecomposite-target clip 630 is represented in track 350 as a rectangle,similar to the non-audition clips. In this example, the audition clip630 is a committed audition clip. As such, the audition clip isrepresented as a rectangle that is the same height as that representingthe committed clips, but with a different color than the committedclips. However, different embodiments may differentiate between previewand committed clips in different ways, as described above.Alternatively, different embodiments may initially place thecomposite-target clip 630 in the composite display area 340 as a previewclip, as described above.

FIGS. 12-13 illustrate applying an alternative edit style when invokingthe audition feature and designating a composite-target clip using adrag-and-hold operation in some embodiments. In the example of FIGS.12-13, a user drags a media clip to a location in the composite displayarea 340 and invokes a contextual menu using the GUI 300 of someembodiments to perform a series of cursor operations. The GUI 300 is thesame GUI 300 described above in reference to FIGS. 3-11. Also, toillustrate the example of an alternative edit style when invoking theaudition feature through the use of a drag-and-hold operation, FIGS.12-13 explain two different stages of a user's interaction with the GUI300 that follow a first stage described above in reference to FIG. 9.

FIG. 12 illustrates a second stage of user interaction after the userhas selected and dragged a clip to a location over the composite displayarea 340 using the cursor 380 as described above in reference to FIG. 9.As shown, this select-and-drag operation has invoked a contextual pop-upmenu 1010 of some embodiments. The pop-up menu 1010 of this example isrepresented as having different options and/or commands than the exampleof FIG. 9. As described above, different embodiments may include variousdifferent menu options. In addition, some embodiments may includeadditional menu options (e.g., through access to sub-menus), that allowa user to access various other options and commands or sub-options andsub-commands.

In this stage, the user selects the “insert audition” command 1210 fromthe pop-up menu 1010 to add the clip 910 to the composite project as anaudition clip. The user makes this selection by moving the cursor 380 toa location over the desired menu option 1210 and performing aleft-cursor click operation (after having released the left-cursor oncethe pop-up menu 1010 was invoked). As shown, moving the cursor 380 overthe “insert audition” command 1210 has caused a change in the graphicalrepresentation of the option relative to the other options or commandsin the pop-up menu 1010. The selected option may be indicated in variousways, such as a bold outline, a change in background, a change in color,etc. In some embodiments, such an option may also be selected throughany number of other techniques, such as a combination of keystrokes, apull-down menu selection, etc.

FIG. 13 illustrates a third stage of user interaction that is after analternative edit style of some embodiments has been invoked when addingan audition clip. As shown, the selected clip 395 has been added totrack 350. The audition feature is represented using the same elementsas described above in reference to FIG. 8. In contrast to the example ofFIG. 8, which used an overwrite edit style, the insert edit style hascaused all previously-existing clips to be shifted by an amount 1310equal to the length of the inserted clip 630. In addition to overwriteand insert edit styles, a user may add an audition clip using variousother edit styles. These edit styles may include, for example, an“exchange” edit style (where a clip is automatically positioned andtrimmed to match an existing clip's length and timeline position), a“replace” edit style (where a clip is trimmed and positioned to match aportion of an existing clip), and/or a “superimpose” edit style (where aclip is moved to a separate track).

In addition to the ways described above in reference to FIGS. 3-13,other embodiments may invoke the audition feature using a variety ofdifferent methods. For instance, a combination of keystrokes, use ofhotkeys, or another appropriate method (e.g., selecting a pull-down orpop-up menu command) may be used to select and insert an audition clipinto a particular location of the timeline.

FIGS. 14-15 illustrate using an alternative interface to invoke theaudition display area of some embodiments. In the example of FIGS.14-15, a user activates a pull-down list 810 in order to load a set ofclips to the audition display area. The GUI 300 is the same GUI 300described above in reference to FIGS. 3-13. Also, to illustrate theexample of invoking the audition display area through the use of apull-down list 810, FIGS. 14-15 explain two different stages of a user'sinteraction with the GUI 300.

FIG. 14 illustrates a first stage that is after the alternative auditionfeature of some embodiments has been invoked. A user might have invokedthe alternative audition feature in a similar manner to that describedabove in reference to FIGS. 9-11.

In this stage, as shown in FIG. 14, a user activates the pull-down listselection item 810 using a cursor selection operation. This activationhas been indicated by displaying a thicker border around the pull-downlist selection item 810 and highlighting the background of the selectionitem. In some embodiments, the user activates the pull-down list using aleft-cursor click operation after positioning the cursor 380 over thedesired clip. One of ordinary skill in the art will recognize that otheroperations may be used to activate the pull-down list selection item810. For instance, a user may perform a combination of keystrokes, use ahotkey to select a particular clip, etc.

FIG. 15 illustrates a second stage of user interaction after the userhas activated the pull-down list selection item 810 using a cursorselection operation. As shown, a drop-down list 1510 has been displayedover the composite display area 340. The drop-down list 1510 of thisexample is represented as having particular options and/or commands, butone of ordinary skill in the art will recognize that differentembodiments may include different options and/or commands.

In this stage, the user selects the “load all into audition panel”option 1520 from the drop-down list 1510 to load the various clips inthe drop-down list into the audition display area of some embodiments.The user makes this selection by moving the cursor 380 to a locationover the desired list option 1520 and performing a left-cursor clickoperation. As shown, moving the cursor 380 over the load all intoaudition panel option 1520 has caused a change in the graphicalrepresentation of the option relative to the other options or commandsin the drop-down list 1510. The selected option may be indicated invarious ways, such as a bold outline, a change in background, a changein color, etc. In some embodiments, such an option may also be selectedthrough any number of other techniques, such as a combination ofkeystrokes, a pop-up menu selection, etc.

The resulting audition display area 510, after the user has selected the“load all into audition panel” option 1520 is the same as shown in FIG.6. As shown in FIG. 6, the audition display area 510 has been invokedand the clip 610 is shown in the audition display area 510. The clipshown in the audition display area is the same clip that was listed inthe drop-down list 1510 of FIG. 15. By invoking the “load all intoaudition panel” option 1520, a user is thus able to invoke the auditiondisplay area 510.

For purposes of simplicity and clarity, many of the examples that followare described using the GUI 300 including the audition feature elementsas shown in FIG. 6 (e.g., an audition feature that includes an auditiondisplay area 510, an audition range selector 530, etc.). One of ordinaryskill will recognize that the GUI 300 including the audition featureelements as shown in FIG. 8 may alternatively be used to perform thesame or similar functions, operations, etc., as are described below inreference to the GUI elements as presented in FIG. 6.

In addition, for purposes of clarity, many of the examples below usevideo clips to illustrate the audition feature. One of ordinary skill inthe art will recognize that the operations performed using video clipsmay also be performed using audio clips or other types of media (e.g.,photos).

B. Creating Sets of Audition Clips

FIGS. 16-32 illustrates various example ways of creating a set ofcandidate audition clips in some embodiments. After describing theexamples of FIGS. 16-32, a process for creating a set of candidateaudition clips will be described in sub-section II.C, below. Inaddition, a conceptual set of data structures used to implement theoperations described in reference to FIGS. 16-32 will be described belowin sub-section II.C.

In the example of FIGS. 16-22, after invoking the audition feature,several media clips are added to the set of candidate audition clipsusing the GUI 300 by performing a series of cursor operations. The GUI300 is the same GUI 300 described above in reference to FIGS. 3-15.Also, to illustrate the example of adding clips to the set of candidateaudition clips through the use of cursor operations, FIGS. 16-22 explainseven different stages of a user's interaction with the GUI 300.

FIG. 16 illustrates a first stage that is after the audition feature hasbeen invoked, and an audition clip has been added to the set ofcandidate audition clips. The invocation of the audition feature mayhave been performed in a similar manner to that described above inreference to FIGS. 3-6. In addition, the audition clip may have beeninserted into the composite display area 340 (represented as candidateaudition clip 610) and the audition display area 510 (represented ascomposite-target clip 630) as described above in reference to FIGS. 3-6.In this stage, a user selects an alternative collection of clips to bedisplayed in the media library 320.

As shown in FIG. 16, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a left-cursor click operationto activate a media library selection control 1610 in order to select adifferent collection of clips to be displayed in the media library 320.As shown, this activation operation has caused a change in the graphicalrepresentation of the media library selection control 1610. Thisactivation may be indicated in various ways, such as a bold outline, achange in background, a change in color, etc.

In some embodiments, the media library 320 displays a collection ofclips from various file locations that have been imported into thelibrary. Different embodiments may implement the media libraryfunctionality using different interfaces, commands, or processes. Forinstance, in some embodiments, the individual clips in the collection ofclips displayed in the media library 320 may be displayed as a list oftextual entries, a set of icons, etc.

FIG. 17 illustrates a second stage of user interaction after the userhas selected a different collection of clips using the media libraryselection control 1610. As shown, this selection operation has causedthe media library selection control 1610 to indicate that a differentcollection of clips is being shown in the media library 320 (i.e.,“collection 5” has replaced “collection 4” in the display).

In this stage, the user selects a clip 1710 from the media library 320to add to the composite project as a candidate audition clip. The usermakes this selection by moving the cursor 380 to a location over theclip 1710 and performing a left-cursor click operation. As shown, thisselection operation has caused a change in the graphical representationof the selected clip 1710 relative to the other clips. The selected clipmay be indicated in various ways, such as a bold outline, a change inbackground, a change in color, etc. In some embodiments, the clip 1710may also be selected through any number of other techniques, such as acombination of keystrokes, a pull-down or pop-up menu selection, etc.

FIG. 18 illustrates a third stage of user interaction after the user hasselected a clip 1710 from the media library 320 to add as an auditionclip. As shown, the selected clip 1710 has been added to the auditiondisplay area 510 as a second candidate audition clip 1810. In addition,some embodiments (not shown) may also update the composite-target clip630 shown in track 350. In some of these embodiments, thecomposite-target clip is automatically updated to reflect thenewly-added clip, while in other of these embodiments, a user mayperform a selection operation (e.g., a left-cursor click) in order toselect the newly-added clip in the audition display area 510 and causethe composite-target clip to be updated. Furthermore, the selection of anewly-added candidate audition clip in some embodiments may cause thedisplay in the preview display area 330 to be updated based on thecontent of the selected clip.

FIG. 19 illustrates a fourth stage that is after a second clip 1810 hasbeen added to the set of candidate audition clips. In this stage, theuser selects another clip 1910 from the media library 320 to add to thecomposite project as a candidate audition clip. The user makes thisselection by moving the cursor 380 to a location over the clip 1910 andperforming a left-cursor click operation. As shown, this selectionoperation has caused a change in the graphical representation of theselected clip 1910 relative to the other clips. The selected clip may beindicated in various ways, such as a bold outline, a change inbackground, a change in color, etc. In some embodiments, the clip 1910may also be selected through any number of other techniques, such as acombination of keystrokes, a pull-down or pop-up menu selection, etc.

FIG. 20 illustrates a fifth stage of user interaction after the user hasselected a clip 1910 from the media library 320 to add as a candidateaudition clip. As shown, the selected clip 1910 has been added to theaudition display area 510 as a third candidate audition clip 2010. Asdescribed above, the composite-target clip may be updated in someembodiments based on the addition of another candidate audition clip, orbased on a secondary operation by the user (e.g., by selecting thenewly-added clip in the audition display area 510). Furthermore, whenthe composite-target clip is updated in some embodiments, the displayshown in the preview display area 330 may also be updated based on thecontent of the selected clip.

FIG. 21 illustrates a sixth stage that is after a third clip 2010 hasbeen added to the set of candidate audition clips. In this stage, theuser selects another clip 2110 from the media library 320 to add to thecomposite project as a candidate audition clip. As described above, theuser may make this selection by moving the cursor 380 to a location overthe clip 2110 and performing a left-cursor click operation. As shown,this selection operation has caused a change in the graphicalrepresentation of the selected clip 2110 relative to the other clips.The selected clip may be indicated in various ways, such as a boldoutline, a change in background, a change in color, etc. In someembodiments, the clip 2110 may also be selected through any number ofother techniques, such as a combination of keystrokes, a pull-down orpop-up menu selection, etc.

FIG. 22 illustrates a seventh stage of user interaction after the userhas selected a clip 2110 from the media library 320 to add as acandidate audition clip. As shown, the selected clip 2110 has been addedto the audition display area 510 as a fourth candidate audition clip2210. As described above, the composite-target clip may be updated insome embodiments based on the addition of another candidate auditionclip, or based on a secondary operation by the user (e.g., by selectingthe newly-added clip in the audition display area 510). Furthermore,when the composite-target clip is updated in some embodiments, thedisplay shown in the preview display area 330 may also be updated basedon the content of the selected clip.

FIGS. 23-25 illustrate an alternative way of creating a set of candidateaudition clips using the GUI 300 of some embodiments. In the example ofFIGS. 23-24, after invoking the audition feature, a committed set ofcandidate audition clips is created using the GUI 300 by performing aseries of cursor operations. In the example of FIG. 25, after invokingthe audition feature, a preview set of candidate audition clips iscreated using the GUI 300 by performing a series of cursor operations.The GUI 300 is the same GUI 300 described above in reference to FIGS.3-22. Also, to illustrate the example of adding clips to the set ofcandidate audition clips through an alternative series of cursoroperations, FIGS. 23-25 explain two different stages of a user'sinteraction with the GUI 300.

FIG. 23 illustrates a first stage of user interaction using the GUI 300after the audition feature has been invoked, and multiple audition clipshave been selected and dragged to the composite display area 340 tocreate a set of candidate audition clips. The invocation of the auditionfeature may have been performed in a similar manner to that describedabove in reference to FIGS. 3-6. In this stage, a user selects multipleclips 2310 from the media library 320 and drags them onto a committedclip 2320 that had previously been placed in the composite display area340.

In some embodiments, a user may select multiple clips from the medialibrary by performing successive left-cursor control-click operations,by selecting a particular clip and then performing a left-cursorshift-click operation, by performing a drag-and-select operation, orsome other appropriate method. The user may then perform a drag-and-dropoperation on the multiple selected clips in order to place the clips ata particular location in the composite display area 340. In someembodiments (not shown) a contextual pop-up menu similar to thosedescribed above in reference to FIGS. 10 and 12 may be invoked when theuser drags one or more clips to an occupied location of the compositedisplay area 340.

FIG. 24 illustrates a second stage of user interaction that is after auser has dragged and dropped a group of clips to a particular locationin the composite display area 340. As shown in FIG. 24, in response tothe user dragging multiple clips onto the committed clip 2320, theaudition feature of some embodiments is invoked, and the committed clip2320 and the group of selected clips are all added to the auditiondisplay area 510. In this example, the audition display area has beeninvoked along with the audition feature. In some cases, the auditiondisplay area may not be automatically invoked with the audition feature,and a user may make another selection to activate the audition displayarea (e.g., through a selection made in response to a pop-up menu).Thus, the audition display area shows the four clips 2410, 2420, 2430,and 2440. In some embodiments, a marker 2450 or other indication isdisplayed, thus indicating that alternative audition clips areassociated with the particular committed clip 2320. In some embodiments,the marker 2450 may be selected (e.g., through a left-cursor clickoperation) in order to invoke the audition display area 510 when theaudition display area has not previously been invoked.

Instead of including an existing clip in the set of candidate auditionclips, a user may elect that the committed clip be replaced by the groupof selected clips (e.g., by making a selection from a contextual menu).In some embodiments, a user may further elect whether the group ofselected clips will replace the committed clip as a committed or previewcomposite-target clip. When the user elects that the group will replacethe committed clip as a committed composite-target clip, the replacedclip's representation is completely removed from the composite displayarea 340 and a composite-target clip representing the group of selectedclips is placed at the same location. In addition, the replaced clipwould not be included in the set of clips displayed in the auditiondisplay area 510. Alternatively, in some embodiments, when a user electsthat the group replace the committed clip as a preview clip, thecommitted clip is not removed from the composite display area 340 andthe preview clip does not completely obscure the existing committedclip.

FIG. 25 illustrates an alternative second stage of user interactionafter a user has performed a group selection and drag-and-drop operationas described above in reference to FIG. 23. A user may elect that thegroup of selected clips replace the existing committed clip as a previewcomposite-target clip. The user may make this election using a pop-up orpull-down menu, a series of keystrokes, or some other appropriate way.As shown in FIG. 25, the composite display area 340 has been updated toshow the composite target-clip 2510 as a preview clip and the committedclip 2320 has been removed from the composite display area 340. In someembodiments, the committed clip 2320 may not be removed from thecomposite display area such that a user may still manipulate thecommitted clip in addition to the set of candidate audition clips.

In this example, the preview clip is represented as a half-heightrectangle. In addition to its half-height representation, thecomposite-target clip 2510 is shown as a different color than thecommitted non-audition clips. Such a visual differentiation may be usedin some cases to allow a user to more easily identify a clip's status.In some embodiments, the visual differentiation may be based on adefault selection, a user's previous election, or some other criteria.In some embodiments (not shown), the preview composite-target clip 2510may include a marker (e.g. marker 2450) or some other notation toindicate that the clip has associated alternative audition clips.

In addition to the updated composite display area 340, the auditiondisplay area 510 has been updated to include a representation of eachclip 2520-2550 in the selected group 2310. In some cases, the previewdisplay area 330 may also be updated to show the content in the selectedcandidate audition clip 2520. Also, in some embodiments, playback willbegin automatically whenever a clip or group of clips is released to thecomposite display area 340.

Although the examples of FIG. 23-25 show multiple clips being moved tothe composite display area, a user may also perform similar operationswhen only one clip is selected and moved to the composite display area.In such cases, a user may still be prompted (e.g., by a contextualpop-up menu) as to whether any existing clip will be replaced, placed ina candidate audition clip set, etc. In addition, a user may performother similar edit operations using various types of clips. Forinstance, a user may drag a group of clips onto an existingcomposite-target clip that represents multiple audition clips, or theuser may drag a group of clips (preview or committed) onto an existingpreview clip. In these cases, various different pop-up menus may beinvoked, or the user may otherwise indicate the appropriate way ofadding the group of clips (e.g., as additional alternatives to anexisting set of audition clips, as a replacement for a committed orpreview clip, etc.).

While the operations used to create and manipulate an audition clip sethave been described with reference to numerous specific details in theforegoing examples, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms (i.e., differentembodiments may implement or perform different operations) withoutdeparting from the spirit of the invention. For example, while theexamples shown illustrate a candidate audition clip set with four orfewer clips, one of ordinary skill in the art would recognize that someembodiments may include a larger number of clips in a candidate auditionclip set.

The example illustrated in FIGS. 23-25 showed one way of associatingmultiple clips simultaneously with a committed clip in one audition set.Other operations may be used to achieve the same result. One suchaddition sequence is illustrated in FIGS. 26-27 and 24. These figuresillustrate the multiple clips can be associated with one committed clipin one audition set by (1) first selecting a committed clip 2320 (asshown in FIG. 26), and (2) then dragging multiple clips 2710 into theaudition display area 510 (as shown in FIG. 27). As shown in FIG. 24,such a selection and drag operation results in the creation of anaudition set that includes committed clip 2410 along with clips2420-2440. As further shown in this figure, a marker 2450 is placed oncomposite-target clip 2320 to indicate the creation of this audition setfor the committed clip.

Some embodiments provide still other techniques for creating an auditionset through the simultaneous selection of multiple clips. One such othertechnique is illustrated in FIGS. 28-29. These figures illustrate thecreation of an audition set through the dragging of several clips 2810onto the audition display area, as shown in FIG. 28. FIG. 29 illustratesthat this drag operation creates an audition set that includes thedragged clips 2910. The audition set that is created that includes theseclips in some embodiment is associated with a destination track, whichin this case is track 350. In this example, the track is a track thatwas previously selected by a user (as indicated by its thicker borderand different fill pattern relative to the other tracks).

Although in this example, a user has previously selected a destinationtrack, in other cases the user may not have selected a track. In suchcases, a default track may be selected (e.g., the lowest-numbered trackthat has available space for the added clips). In different embodimentsthe destination track may be selected using different operations (orcriteria for a default selection). In any case, there is always anactive destination track. Thus, the active destination track willreceive any clips that are added to the audition display area in themanner described above in reference to FIGS. 26-27 and 24 or FIGS.28-29.

The three examples given above by reference to FIGS. 23-25, 26-27 and24, and 28-29, illustrate the creation of an audition set that isdisplayed in the audition pane. As mentioned above in reference to FIG.8, some embodiments use other display windows for displaying the clipsof an audition set, instead of or in lieu of using the audition displayarea. For instance, for the audition set example that was describedabove by reference to FIGS. 23-25, FIGS. 30-32 illustrate another way ofdisplaying such an audition set.

FIGS. 30-31 illustrate using an alternative interface to invoke theaudition display area of some embodiments. In the example of FIGS.30-31, a user activates a drop-down menu 810 in order to load a set ofclips to the audition display area. The GUI 300 is the same GUI 300described above in reference to FIGS. 3-29. Also, to illustrate theexample of invoking the audition display area through the use of adrop-down menu 810, FIGS. 30-31 explain two different stages of a user'sinteraction with the GUI 300.

FIG. 30 illustrates a first stage that is after the alternative auditionfeature of some embodiments has been invoked. A user might have invokedthe alternative audition feature in a similar manner to that describedabove in reference to FIGS. 23 and 24.

In this stage, as shown in FIG. 30, a user activates the drop-down menuselection item 810 using a cursor selection operation. This activationhas been indicated by displaying a thicker border around the drop-downmenu selection item 810 and highlighting the background of the selectionitem. In some embodiments, the user activates the pull-down list using aleft-cursor click operation after positioning the cursor 380 over thedesired clip. One of ordinary skill in the art will recognize that otheroperations may be used to activate the drop-down menu selection item810. For instance, a user may perform a combination of keystrokes, use ahotkey to select a particular clip, etc. Once invoked, the

FIG. 31 illustrates a second stage of user interaction after the userhas activated the drop-down menu selection item 810 using a cursorselection operation. As shown, a drop-down list 1510 has been displayedover the composite display area 340. The drop-down list 1510 of thisexample is represented as having particular options and/or commands, butone of ordinary skill in the art will recognize that differentembodiments may include different options and/or commands.

In this stage, the user selects the “load all into audition panel”option 1520 from the drop-down list 1510 to load the various clips inthe drop-down list into the audition display area of some embodiments.The user makes this selection by moving the cursor 380 to a locationover the desired list option 1520 and performing a left-cursor clickoperation. As shown, moving the cursor 380 over the load all intoaudition panel option 1520 has caused a change in the graphicalrepresentation of the option relative to the other options or commandsin the drop-down list 1510. The selected option may be indicated invarious ways, such as a bold outline, a change in background, a changein color, etc. In some embodiments, such an option may also be selectedthrough any number of other techniques, such as a combination ofkeystrokes, a pop-up menu selection, etc.

One example of the resulting display (specifically, the display of theaudition display area 510 and the representation of the composite-targetclip 2320), after the user has selected the “load all into auditionpanel” option 1520 is the same display shown in FIG. 24. As shown inFIG. 24, the audition display area 510 has been invoked and the clips2410, 2420, 2430, and 2440 shown in the audition display area 510 arethe same clips that were listed in the drop-down list 1510 of FIG. 31.By invoking the “load all into audition panel” option 1520, a user isthus able to more easily view and select the various clips in thecandidate audition clip set.

FIGS. 30 and 32 illustrate using an alternative interface to invoke anaudition set representation in the composite display area 340 of someembodiments. In the example of FIGS. 30 and 32, a user activates apull-down list 810 in order to save a group of candidate audition clipsas an audition set. The GUI 300 is the same GUI 300 described above inreference to FIGS. 3-29. Also, to illustrate the example of invoking theaudition display area through the use of a drop-down menu 810, FIGS. 30and 32 explain two different stages of a user's interaction with the GUI300. The first stage was described above in reference to FIG. 30.

FIG. 32 illustrates a second stage of user interaction after the userhas activated the drop-down menu selection item 810 using a cursorselection operation. As shown, a drop-down list 1510 has been displayedover the composite display area 340. The drop-down list 1510 of thisexample is represented as having particular options and/or commands, butone of ordinary skill in the art will recognize that differentembodiments may include different options and/or commands.

In this stage, the user selects the “save as audition set” option 3210from the drop-down list 1510 to save the various clips in the drop-downlist as an audition set in some embodiments. The user makes thisselection by moving the cursor 380 to a location over the desired listoption 3210 and performing a left-cursor click operation. As shown,moving the cursor 380 over the “save as audition set” option 3210 hascaused a change in the graphical representation of the option relativeto the other options or commands in the drop-down list 1510. Theselected option may be indicated in various ways, such as a boldoutline, a change in background, a change in color, etc. In someembodiments, such an option may also be selected through any number ofother techniques, such as a combination of keystrokes, a pop-up menuselection, etc. Furthermore, in some embodiments, a group of clips maybe saved as an audition set by default, without requiring the user tomake any particular selection.

The resulting composite display area 340 (specifically, therepresentation of the composite-target clip 2320 with associated mark2450), after the user has selected the “save as audition set” option3210 is the same composite display area 340 shown in FIG. 24. Althoughnot shown, the committed clip 2320 includes the same associatedalternative audition clips that were listed in the drop-down list 1510of FIG. 32. In some cases, when performing preview or audition edits,these edits are not saved to the composite project data. Thus, in someembodiments, a user may select the “save as audition set” option 3210from the pull-down menu 1510 in order to save a set of candidateaudition clips within the composite project data so that the set ofcandidate audition clips may be loaded and reviewed during a laterediting session.

While the operations used to create and manipulate an audition clip sethave been described with reference to numerous specific details in theforegoing examples, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms (i.e., differentembodiments may implement or perform different operations) withoutdeparting from the spirit of the invention. For example, while theexamples shown illustrate a candidate audition clip set with four orfewer clips, one of ordinary skill in the art would recognize that someembodiments may include a larger number of clips in a candidate auditionclip set. In addition, although the examples above all describeoperations used to add clips to an audition clip set, clips may also beremoved from an audition clip set after they have been added.

C. Processes and Data Structures Used to Create Sets of CandidateAudition Clips

Some embodiments allow clips to be added as committed or preview clips.Some of these embodiments may user a process to distinguish between thepreview and committed clips. FIG. 33 illustrates an example of such aconceptual process 3300 that some embodiments use to create a set ofcandidate audition clips. The process 3300 will be described withreference to the conceptual data structures illustrated in FIG. 34 andthe example operations and GUI displays described above in reference toFIGS. 3-32.

In some embodiments, the process 3300 starts when the audition featureis activated. Different embodiments may activate the audition feature invarious ways (e.g., by using the audition selection item 310, asdescribed above in reference to FIGS. 3-6, using a pull-down or pop-upmenu command, etc.).

Next, process 3300 receives (at 3310) a selection of a location in thecomposite display area to insert a target-composite clip. One example ofa selecting a location was provided in reference to FIG. 6 above, wherethe composite-target clip 630 was inserted into the composite displayarea 340 at a location 650 set by the playhead 390. As discussed above,the insertion location may be set in a variety of ways (e.g., moving theplayhead using a cursor operation, making a pull-down or pop-up menuselection, performing a drag-and-drop operation, etc.). Although in theexample of FIG. 6 the composite-target clip was a video clip, someembodiments allow a composite-target clip to be an audio clip or someother type of media (e.g., an overlay clip, a digital photo, etc.).

After receiving (at 3310) a selection of a location to insert acomposite-target clip, the process creates (at 3320) a candidateaudition clip set. In some embodiments, the process may be modified todetermine if there is an existing candidate audition clip set beforeeither creating a candidate audition clip set (if none previouslyexisted) or retrieving the existing candidate audition clip set. Thecreation of a candidate audition clip set may use various datastructures to define such a candidate audition clip set. One example ofthese data structures is described below.

FIG. 34 conceptually illustrates the data structures used by process3300 to perform at least some of their operations in some embodiments.Specifically, FIG. 34 illustrates various attributes and data structuresthat may be included in some embodiments of the media editingapplication's composite project file 3400. As shown, the project file3400 may include a project information data element 3405. The projectinformation data element may include attributes such as, for example,the project's name, author, etc. Although these attributes arerepresented as a single data structure, some embodiments may store eachof the attributes in a separate data element.

In addition, the project file 3400 may include video track data elements3410 and audio track data elements 3415 for storing informationcorresponding to various clips that have been placed in the differenttracks. A single project may include multiple audio tracks and multiplevideo tracks. In addition, other types of track data elements may bestored in the project file. For instance, effects track data elements,overlay track data elements, or other types of track data elements maybe stored in the project file in addition to audio and video track dataelements. The audio and video track data elements 3410-3415 are shown inmore detail in breakout section 3420.

As shown, in some embodiments each individual track data element 3420may include a list of references 3425 to each clip that has been placedin a track (i.e., each clip shown in the composite display area). Eachclip reference 3430 in each track data element 3420 refers to anindividual clip data element 3435 that is part of the project file 3400.These clip data elements 3435 are shown in more detail in breakoutsection 3450.

As shown in FIG. 34, each clip data element 3450 may include informationsuch as a set of location identifiers, a set of clip identifiers, sourcein and out references, timeline in and out references, and/or variousother attributes (e.g., color settings, audio settings, effectssettings, etc.). One of ordinary skill will recognize that the clip dataelements may include other data than is shown, or may not include all ofthe data shown in the conceptual diagram 3450.

In addition to referring to clip data elements 3435, each clip referencemay refer to an associated set of candidate audition clip sets dataelement 3445. As shown, each associated set of candidate audition clipsets data element 3445 includes one or more candidate audition clip setdata elements 3450. The candidate audition clip set data element isshown in more detail in breakout section 3455. As shown, each candidateaudition clip set data element 3455 may include a set of locationidentifiers, references to clips (e.g., references to data elements suchas clip data element 3450), an identifier of a committed clip (if any),and/or other attributes (e.g., identification of the composite-targetclip, color settings, audio settings, effects settings, etc.). Althoughthe candidate audition clip set data element 3455 is illustrated as asingle data structure, different embodiments may be implemented indifferent ways. For instance, in some embodiments, the candidateaudition clip set data element 3455 may simply include a list ofreferences to individual clip data elements 3435, similar to the trackdata element 3420.

Referring again to FIG. 33, in some embodiments, the candidate auditionclip set is created (at 3320) by inserting a clip reference 3430 intothe track data element 3420 shown in FIG. 34. In some of theseembodiments, the clip reference 3430 would refer to a data structuresimilar to the data structure 3455 shown in FIG. 34.

Once the process has created (at 3320) a candidate audition clip set,the process then receives (at 3330) a clip selection of one or moreclips. Different embodiments may receive the clip selection in differentways. For instance, as shown in the example of FIG. 3, a clip 395 may beselected from the media library 320 before the audition feature isinvoked using the audition selection item 310 in some embodiments. Someembodiments may receive the clip selection through a series ofkeystrokes, a pop-up or pull-down menu command, or some otherappropriate method. In addition, some embodiments may receive aselection that includes multiple clips.

After receiving (at 3330) a clip selection, process 3300 adds (at 3340)the selected clip(s) to the candidate audition clip set. The clip(s) maybe added to the audition clip set by creating or modifying a datastructure such as the candidate audition clip set data element 3455shown in FIG. 34. For instance, the columns of the data element 3455 maybe populated with data that corresponds to the selected clip(s).

Next, the process may update (at 3350) the identification of thecomposite-target clip. As described above, in some embodiments thecomposite-target clip is updated whenever a new audition clip is addedto the set of candidate audition clips. In other embodiments, theidentification of the composite-target clip is not automaticallyupdated, and a user must select a menu option or perform some otheroperation to update the identity of the composite-target clip. Thisidentification may be achieved in different ways. For example, thecandidate audition clip set data element 3455 may be updated such that aparticular attribute of the data element (e.g., “clip type”, “clipattributes”, or some other attribute that is not shown in FIG. 34)reflects the added clip's status as a composite-target clip. As anotherexample, when the candidate audition clip set data element 3455 includesdata representative of multiple clips, the clips may be arranged suchthat the composite-target clip is placed in the first column of the dataelement.

After updating (at 3350) the identification of the composite-targetclip, the process displays (at 3360) an updated composite display areaand an updated audition display area to reflect the added clip and itsstatus as a composite-target clip. As described above, in some cases thecomposite-target clip identity is not changed when a new clip is addedto the candidate audition clip set, and thus the composite display areais not updated. In addition, the display may not be updated when theidentification of the composite-target clip is not updated. The updateddisplay may be based on the data stored in the example project file 3400of FIG. 34. In some embodiments, as shown in FIG. 33, the display isupdated every time a clip is added as an audition clip. In otherembodiments, the display may be updated at regular time intervals, or inresponse to certain user commands and/or actions. The display of theupdated audition display area 510 was described above.

Once the process displays (at 3360) the updated audition display areaand the potentially updated composite display area, the processdetermines (at 3370) whether there is another clip to add to thecandidate audition clip set. When there is another clip to add, theprocess repeats operations 3330-3370 as described above, until theprocess determines (at 3370) that there are no other clips to add to thecandidate audition clip set, at which point the process ends.

Some embodiments may allow a user to create multiple candidate auditionclip sets for a particular location in the composite project. Thus, theprocess 3300 may be repeated to create a candidate audition clip set fora new location, as described above, or to create an additional candidateaudition clip set for a location that is already associated with one ormore previously-created candidate audition clip sets. FIG. 34illustrates an example data structure 3445 that includes an associatedset of one or more candidate audition clip sets 3450, where eachcandidate audition clip set 3450 in the associated set 3445 isassociated with a particular location in the composite project.

One of ordinary skill in the art will recognize that process 3300 is aconceptual representation of the operations used to create a candidateaudition clip set. The specific operations of the process may not beperformed in the exact order described or different specific operationsmay be performed in different embodiments. Also, the process may not beperformed as one continuous series of operations. Furthermore, theprocess could be implemented using several sub-processes, or as part ofa larger macro-process. Similarly, the data structures, elements, andattributes described in reference to FIG. 34 are conceptualrepresentations of the structures, elements, and attributes that may beused to implement some embodiments.

FIG. 35 illustrates an example of a conceptual process 3500 that someembodiments perform when a request is made to add media content to thecomposite display area. The process 3500 starts when the media editingapplication receives a request to add a clip (or group of clips) to themedia project. The request to add a clip may be received in variousways. For example, a drag-and-drop cursor operation, pull-down or pop-upmenu selection, or series of keystrokes may be used to request that aclip be added to the composite display area.

As described above, the process of selecting and adding a clip may beperformed using a variety of operations. Thus, one of ordinary skillwill recognize that in some embodiments, the process may determinewhether the clip to be added is a preview clip before the clip has beenselected. Or, the operations of receiving a selection and determiningwhether the clip is to be added as a preview clip may be performed atthe same time based on a single user action.

In addition, process 3500 is a conceptual representation of theoperations used when a clip is added to a media project. The specificoperations of the process may not be performed in the exact orderdescribed or different specific operations may be performed in differentembodiments. Also, the process may not be performed as one continuousseries of operations. Furthermore, the process could be implementedusing several sub-processes, or as part of a larger macro-process.

After receiving a request to add a clip, the process determines (at3510) whether the clip is a preview clip. When determining (at 3510)that the clip to be added is a preview clip, process 3500 adds (at 3520)data to the preview clip definition (e.g., data structure(s) that definedata for any preview clip(s) that will not be included in the compositepresentation).

After the data corresponding to the preview clip has been added (at3520) to the preview clip definition, the process displays (at 3530) anupdated GUI. The updated GUI may show a new representation of a previewclip in the composite display area. In addition to (or in place of)being performed following the addition of clip data to the compositeproject definition, display operation 3530 may be performed in responseto certain user actions or commands, at regular time intervals, etc. Inaddition, the updated GUI may be at least partially generated based onthe updated composite project definition.

Thus, when adding a preview clip, both the display and the underlyingdata in the preview clip definition may be updated based on the additionof a preview clip. After the process updates (at 3520) the preview clipdefinition and displays (at 3530) the updated graphical user interface,the process ends.

When determining (at 3510) that the clip is not a preview clip, theprocess next determines (at 3540) whether any section of the added clipoverlaps any section(s) of any existing clip(s) in the composite displayarea. The process may determine whether any section(s) of the added clipoverlap any section(s) of existing clip(s) by evaluating the compositeproject definition. Thus, process 3500 may determine (at 3540) whetherany clip sections overlap by evaluating neighboring clips in the sametrack to, for instance, determine if one clip's timeline out occursafter another clip's timeline in. In addition to determining (at 3540)whether any clip sections overlap, the process may determine (not shown)which sections of the clips overlap.

When the process determines (at 3540) that the added clip does overlapsection(s) of existing clip(s), the process deletes (at 3550) theoverlapping section(s) of the existing clip(s) from the compositeproject definition (e.g., data structure(s) that define the compositepresentation).

After deleting (at 3550) any overlapping section of an existing clipfrom the composite project definition, or determining (at 3540) that nosections overlap, the process adds (at 3540) data to the compositeproject definition corresponding to the clip to be added.

After the data has been added (at 3560) to the composite projectdefinition, the process displays (at 3570) an updated GUI. The updatedGUI may show a new representation of a committed clip in the compositedisplay area. Similar to the display operation 3530 described above, thedisplay operation 3570 may be performed in response to certain useractions or commands, at regular time intervals, etc. In addition, theupdated GUI may be at least partially generated based on the updatedcomposite project definition.

When adding a committed clip, both the display and the underlying datain the composite project definition may be updated based on the additionof a committed clip. After the process updates (at 3560) the compositeproject definition and displays (at 3570) the updated graphical userinterface, the process ends.

In addition, in some embodiments the preview clip definition is notsaved unless a user commits the preview edit(s) to the compositeproject. In other embodiments, the preview clip definition may be savedas preview data (i.e., saved without affecting the composite projectdefinition). Alternatively, some embodiments may allow the user to savepreview clip definition in a separate file location from the compositeproject definition.

Furthermore, although the process of adding a clip has been describedwith references to certain features and actions, one of ordinary skillin the art will recognize that the process may be implemented usingother specific embodiments without departing from the spirit of theinvention. For instance, the process could initially add all clips aspreview clips before receiving another indication causing the previewclip to be converted to a committed clip. In addition, some potentialoperations have been omitted for clarity.

For instance, after inserting one or more clips, a user may choose tosave the composite project data before continuing. In the next section,various editing functions that may be used on the added preview orcommitted clips are described. In addition, some embodiments of theprocess may determine if the added preview clip overlaps an existingpreview clip in the same track and delete the overlapping section of theexisting preview clip from the preview clip definition. Otherembodiments, however, may allow preview clips to overlap in the sametrack.

In addition, although the process of creating a candidate audition clipset has been described with references to certain features and actions,one of ordinary skill in the art will recognize that the process may beimplemented using other specific embodiments without departing from thespirit of the invention. For instance, the process could receive a clipselection before creating a candidate audition clip set. Furthermore,some potential operations have been omitted for clarity. For instance,after adding one or more clips to a candidate audition clip set, a usermay choose to save the composite project data before continuing. Thenext sub-section describes the operations used to select from amongmultiple candidate audition clip sets that are associated with aparticular location in the composite project.

D. Managing Candidate Audition Clip Sets

FIGS. 36-41 illustrate one example way of selecting from among multiplecandidate audition clip sets that are associated with a particularlocation in the composite project. In the example of FIGS. 36-41, afterinvoking the audition feature and creating an associated set ofcandidate audition clip sets, a user may select a particular candidateaudition clip set from the associated set of candidate audition clipsets using the GUI 300 by performing a series of cursor operations. TheGUI 300 is the same GUI 300 described above in reference to FIGS. 3-32.Also, to illustrate the example of selecting a particular candidateaudition clip set through the use of cursor operations, FIGS. 36-41explain six different stages of a user's interaction with the GUI 300.

FIG. 36 illustrates a first stage that is after the audition feature hasbeen invoked, and a particular set of candidate audition clips has beenselected. The invocation of the audition feature may have been performedin a similar manner to that described above in reference to FIGS. 3-6.In addition, the candidate audition clip set may have been created asdescribed above in reference to FIGS. 16-22. In this stage, a useractivates a candidate audition clip set selection item 3610 in theaudition display area 510.

As shown in FIG. 36, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a left-cursor click operationto activate the candidate audition clip set selection item 3610 in orderto select a different set of candidate audition clips to be displayed inthe audition display area 510. As shown, this activation operation hascaused a change in the graphical representation of the candidateaudition clip set selection item 3610. This activation may be indicatedin various ways, such as a bold outline, a change in background, achange in color, etc.

FIG. 37 illustrates a second stage of user interaction after the userhas activated the candidate audition clip set selection item 3610. Asshown, this selection operation has caused the audition display area 510to display several thumbnails 3710-3740 where each thumbnail representsa set of candidate audition clips. Each of the sets of candidateaudition clips may have been created as described above in the exampleof FIGS. 16-22, or by some other appropriate method. The sets ofcandidate audition clips 3710-3740 are all associated with a particularlocation 650 along the timeline 360.

In some embodiments, the location 650 is determined by the position ofthe playhead 390. Some embodiments may identify the particular locationby identifying the location corresponding to a selected clip or set ofcandidate audition clips (e.g., by determining the location of theselected clip 2210 as shown in FIG. 36). Because audition clips may beplaced on any of the available tracks, some embodiments may require theuser to select a particular track as well as a particular location inorder to identify any sets of candidate audition clips associated withthe particular location in the particular track.

FIG. 38 illustrates a third stage of user interaction after the user hasactivated the candidate audition clip set selection item 3610 and theaudition display area 510 has been updated to show several sets ofcandidate audition clips 3710-3740. In this stage, the user selects aparticular candidate audition clip set 3720 from the audition displayarea 510. The user makes this selection by moving the cursor 380 to alocation over the thumbnail representation of the candidate auditionclip set 3720 and performing a left-cursor click operation.

As shown, this selection operation has caused a change in the graphicalrepresentation of the selected candidate audition clip set 3720 relativeto the other candidate audition clip sets. The selected candidateaudition clip set may be indicated in various ways, such as a boldoutline, a change in background, a change in color, etc. In someembodiments, the candidate audition clip set 3720 may also be selectedthrough any number of other techniques, such as a combination ofkeystrokes, a pull-down or pop-up menu selection, etc.

FIG. 39 illustrates a fourth stage of user interaction after the userhas selected an alternative set of candidate audition clips. As shown,this selection operation has caused the audition display area 510 to beupdated to show the candidate audition clips 3910-3940 that are includedin the set of candidate audition clips 3720 that was selected in thethird stage as described above in reference to FIG. 38.

The ability to recall different sets of candidate audition clip allows auser to easily switch between groups of clips. In addition, a user mayaccess groups of clips that are not included in a single media library320 or file location. For instance, in the example of FIG. 39, threeclips 3910-3930 in the set of candidate audition clips are not includedin the currently-displayed media library 320, while one clip 3940 isincluded in the media library 320. Thus, the user may access multipleclips from multiple media library sources without performing, forexample, the series of operations described above in reference to FIGS.16-17 to successively select different media libraries in order toaccess individual clips.

FIG. 40 illustrates a fifth stage of user interaction after the auditiondisplay area 510 has been updated based on a selection of a set ofcandidate audition clips. In this stage, the user selects a particularcandidate audition clip 3920 from the audition display area 510. Theuser makes this selection by moving the cursor 380 to a location overthe candidate audition clip 3920 and performing a left-cursor clickoperation.

As shown, this selection operation has caused a change in the graphicalrepresentation of the selected candidate audition clip 3920 relative tothe other candidate audition clips. As above, the selected candidateaudition clip may be indicated in various ways, such as a bold outline,a change in background, a change in color, etc. In some embodiments, thecandidate audition clip 3920 may also be selected through any number ofother techniques, such as a combination of keystrokes, a pull-down orpop-up menu selection, etc.

FIG. 41 illustrates a sixth stage of user interaction after the user hasselected a particular audition clip 3920 in the set of candidateaudition clips. As shown, this selection operation has caused severalupdates to the GUI 300 display. The particular audition clip 3920 isshown with a bold border and a mark 620 indicating that the auditionclip 3920 has been selected as the composite-target clip. In addition,the composite display area 340 has been updated with a newcomposite-target clip 4110 representing the selected candidate auditionclip 3920. The updated composite-target clip 4110 replaces the previouscomposite-target clip 4010 in track 520. The preview display area 330has also been updated to reflect the content of the newly-selectedcomposite-target clip 3920.

II. Editing and Committing Audition Clips

Several edit operations that may be performed on the audition and/ornon-audition clips shown in the composite display area are describedbelow. Sub-section II.A describes various “live-edit” functions that arecommonly performed on non-audition clips and may also be applied toaudition clips in conjunction with the audition feature of someembodiments. Next, sub-section III.B describes the operations used bysome embodiments to commit preview clips to the composite project datain some embodiments. Finally, sub-section II.C describes one example wayof de-invoking the audition feature.

A. Live-Edit Functions

FIGS. 42-44 illustrate several live-edit functions that may be performedin some embodiments. In the examples of FIGS. 42-44, the auditionfeature has been invoked and a set of candidate audition clips has beencreated and selected. The GUI 300 is the same GUI 300 described above inreference to FIGS. 3-32 and 36-41. Also, to illustrate the examples ofperforming various live-edit functions through the use of cursoroperations, FIGS. 42-44 describe five different editing operations thatmay be performed on audition or non-audition clips.

FIG. 42 illustrates a live-edit operation of moving a clip from onetrack to another in some embodiments. Specifically, this figureillustrates moving an audition clip 4110 from track 520 to track 350. Inthis example, the clip 4110 is moved by using the cursor 380 to performa drag-and-drop operation.

As shown, the audition clip 4110 is moved from track 520 to track 350.In this example, a user selects the audition clip 4110 by performing aleft-cursor click operation and moving the cursor to another location inthe composite display area 340 before releasing the left-cursor. Theclip 4110 is moved to an open location in track 350 in this example, butmay also be moved to an occupied location in a track as will bedescribed below. In addition, non-audition clips may be moved betweentracks in a similar manner. After being moved, the clip 4110 is still apreview audition clip (as indicated by its differentiating color).

FIG. 43 illustrates a live-edit operation of moving a clip 4110 along atrack 350 in some embodiments. Specifically, this figure describes theoperations used to move a clip along a track 350 using a click-and-dragoperation. As shown, the clip 4110 is moved from one location 4310 to asecond location 4320 along track 350. Clips on other tracks may be movedin a similar manner. In this example the clip is moved within an openlocation, but may also be moved to overlap an occupied location, as willbe described below.

FIG. 44 illustrates a live-edit operation of replacing one clip withanother in some embodiments. In this example, this figure describes theoperations used to move a preview clip from a first location 4320 to asecond location 4410 that had been occupied by another clip 4420. Asdescribed above, a preview clip does not overwrite existing compositeproject data, but may still be manipulated in the same manner ascommitted clip. The preview clip 4110 has been moved from one location4320 to a second location 4410 in a different track 4430. A clip may bemoved within a single track in a similar manner.

In this example the clip is an audition clip, and is also a previewclip, and thus does not completely displace the previously-existing clip4420. The preview clip has been represented as a half-height rectangle4110 in this example, but other embodiments may represent preview clipsin other ways (e.g., different colors, shapes, etc.). As shown, thepreview clip does not completely displace the existing clip, thusallowing a user to manipulate the preview audition clip 4110 withoutaffecting the existing composite clip 4420 or the composite project, asdefined by the committed clips. In some embodiments, a pop-up menu maybe invoked such that the user may indicate whether clip 4420 should beadded to the audition clip set. In other embodiments, the clip 4420 isadded to the audition clip set by default.

FIG. 45 shows the result of the operation performed in FIG. 44 when auser has elected to include clip 4420 in the audition clip set. Asshown, clip 4420 has been added to the audition display area 510 and isdisplayed as a thumbnail 4510. In addition, clip 4420 has been removedfrom the composite display area 340. In some embodiments, the clip 4420may be left in the audition display area, with the composite-target clip4110 displayed over the committed clip 4420 (e.g., as shown in FIG. 44).

In some embodiments (not shown) the committed clip (i.e., clip 4420) maybe automatically selected as the composite-target clip when it is addedto the set of candidate audition clips. Furthermore, in some embodiments(not shown), when the committed clip 4420 is selected as thecomposite-target clip, the composite-target clip's graphicalrepresentation is changed from that of a preview clip to a committedclip, where the committed clip representation may have some indicationthat there is an associated set of candidate audition clips (e.g.,marker 2450). In any case, a set of candidate audition clips willinclude no more than one committed audition clip at any time.

In some embodiments, once the committed clip has been added to a set ofaudition clips, the committed clip will be moved along with thecomposite-target clip that represents the set of candidate auditionclips (i.e., the committed clip will not be restored to its previouslocation if the set of candidate audition clips is moved to a differentlocation, deleted, etc.). In some cases, a user may select a “cancel” or“revert” option to restore the committed clip to its location (and/or toremove the committed clip from the set of audition clips) before it wasadded to the set of audition clips.

Although many editing operations have been described above using theexample of cursor-control operations, one of ordinary skill willrecognize that such operations may be performed in other ways (e.g.,pull-down or pop-up menus, a combination of keystrokes, etc.).

B. Converting Audition Clips to Non-Audition Clips

FIGS. 45-46 illustrate one example of converting an audition clip to anon-audition clip. In the examples of FIGS. 45-46, the audition featurehas been invoked and a set of candidate audition clips has been createdand selected. The GUI 300 is the same GUI 300 described above inreference to FIGS. 3-32 and 36-44. The state of the GUI 300 follows thestate of the GUI as shown in FIG. 44. The invocation of the auditionfeature may have been performed in a similar manner to that describedabove in reference to FIGS. 3-6. In addition, the candidate auditionclip set may have been created as described above in reference to FIGS.16-22. Also, to illustrate the example of converting a particularaudition clip to a non-audition clip through the use of cursoroperations, FIGS. 45-46 explain two different stages of a user'sinteraction with the GUI 300.

FIG. 45 illustrates a first stage that is after a user has invoked theaudition feature and selected an audition clip for conversion. The stateof the GUI 300 follows the state described above in reference to FIG.44, after the audition clip was moved to a location that replaced theexisting committed clip. As shown in FIG. 45, in this stage a userinitiates a conversion of an audition clip by selecting the mark 620indicating that the audition clip 3920 has been selected as thecomposite-target clip 4110.

As shown in FIG. 45, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a left-cursor click operationto activate the mark 620 in order to convert the composite-target clip4110 from an audition clip to a non-audition clip. As shown, thisactivation operation has caused a change in the graphical representationof the mark 620. This activation may be indicated in various ways, suchas a change in background, a change in color, etc. A user mayalternatively initiate the conversion operation using a series ofkeystrokes, a pull-down or pop-up menu command, etc. In addition, someembodiments may allow a user to convert a committed clip to a previewclip.

FIG. 46 illustrates a second stage of user interaction after the userhas selected the mark 620 in some embodiments. As shown, this selectionoperation has caused the composite-target clip 4110 shown in thecomposite display area 340 to be updated such that the clip 4110 isrepresented as a non-audition clip (i.e., the clip 4110 is nowrepresented as the same shape and color as the other non-audition clipsshown in the composite display area 340). Although the clip 4110 is nolonger represented as an audition clip in the composite display area340, in some embodiments, the user may still be able to recall thevarious candidate audition clip sets that were associated with thesince-converted composite-target clip 4110. In addition, in some ofthese embodiments the associated audition clip sets may be indicated bya marker such as the marker 2450 described above in reference to FIG.24. In other embodiments, the associations to any audition clip sets maybe removed by the conversion and would not be available for recall bythe user at a future time.

C. Ending the Audition Session

FIGS. 47-49 illustrate one example way of ending an audition session(i.e., de-invoking the audition feature). In this example, the user haspreviously invoked the audition feature and converted an audition clipto a non-audition clip, as described above in reference to FIGS. 45-46.However, in some cases, a user may also wish to end the audition sessionwithout converting any audition clips to non-audition clips. The GUI 300in the example of FIGS. 47-49 is the same GUI 300 described above inreference to FIGS. 3-32, 36-46. The invocation of the audition featuremay have been performed in a similar manner to that described above inreference to FIGS. 3-6. Also, to illustrate the example of ending anaudition session through the use of cursor operations, FIGS. 47-49explain three different stages of a user's interaction with the GUI 300.

FIG. 47 illustrates a first stage that is after a user has invoked theaudition feature in some embodiments. The state of the GUI 300 followsthe state described above in reference to FIG. 46, after the auditionclip 4110 was converted to a non-audition clip. As shown in FIG. 47, inthis stage a user selects the audition selection item 310.

As shown in FIG. 47, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a left-cursor click operationto select the audition selection item 310 in order to terminate theaudition session and de-invoke the audition feature. As shown, thisselection operation has caused a change in the graphical representationof the audition selection item 310. This selection (or de-selection) maybe indicated in various ways, such as a change in background, a changein color, etc. A user may alternatively de-invoke the audition featureusing a series of keystrokes, a pull-down or pop-up menu command, etc.

FIG. 48 illustrates a second stage of user interaction after the userhas selected the audition selection item 310. As shown, this selectionoperation has caused the audition display area 510 to be partiallyremoved from the GUI 300, although the audition range selector 530 isstill completely visible in this example. In some embodiments, the track520 that was created when the audition tool was invoked would be removedfrom the composite display area when the audition session is ended (solong as there on no clips remaining on the newly-created track). Theaudition feature may be de-invoked immediately or removed from thedisplay in a different manner in different embodiments. In addition,some embodiments may display the audition feature components (e.g., theaudition display area 510) even when the audition feature has not beeninvoked (or has been de-invoked).

FIG. 49 illustrates a third stage of user interaction after the user hasde-invoked the audition feature. As shown, the audition range selector,audition display area, and newly-added track have been completelyremoved from the GUI 300.

In some embodiments, the audition session information (e.g., clips inthe candidate audition clip set) may be saved when the audition sessionis ended (as indicated by marker 2450 in this example). In otherembodiments, the audition session information may be deleted when theaudition session ends. In some cases, the determination of whether tosave the audition information may be based on a selection made by theuser. In other cases, the determination may be a default determinationor may be made based on the status of the audition clip or clips (e.g.,committed versus preview). In some embodiment, when the audition featureis de-invoked, the marker 2450 would not be displayed (i.e., the userwould have to invoke the audition feature in order to enable the displayof the marker).

The preceding section has described several example live-editoperations, the operations used to convert an audition clip to anon-audition clip in some embodiments, and an example way of de-invokingthe audition tool. Section III, below, describes some example ways thata user may review these edit operations and preview the compositeproject as it would appear with a particular audition clip. In thismanner, a user may verify that a particular audition clip suits theparticular location that it will be inserted in the project before theuser commits to the particular audition clip.

III. Invoking Playback Preview

The following section describes the operations used by some embodimentsto perform playback preview (i.e., playback of a presentation or asection of a presentation in the preview display area).

FIGS. 50-51 illustrate one example way of invoking playback preview. Inthe examples of FIGS. 50-51, the audition feature has been invoked and aset of candidate audition clips has been created and selected. The GUI300 in the example of FIGS. 50-51 is the same GUI 300 described above inreference to FIGS. 3-32, and 36-49. The example of FIGS. 50-51 followsthe state of the GUI 300 described above in reference to FIG. 36. Also,to illustrate the example of performing preview playback through the useof cursor operations, FIGS. 50-51 explain two different stages of auser's interaction with the GUI 300.

FIG. 50 illustrates a first stage that is after the audition feature hasbeen invoked and a particular candidate audition clip 2210 has beenselected. The invocation of the audition feature may have been performedin a similar manner to that described above in reference to FIGS. 3-6.In addition, the candidate audition clip set may have been created asdescribed above in reference to FIGS. 16-22. The first stage shown inFIG. 50 follows the state of the GUI 300 as described above in referenceto FIG. 22. As shown in FIG. 50, in this stage, a user selects multiplecandidate audition clips 610, 1810, 2010, and 2210 from a set ofcandidate audition clips displayed in the audition display area 510.

As shown in FIG. 50, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a shift-left-cursor clickoperation to select the candidate audition clip 610 without releasingthe selection of the previously-selected candidate audition clip 2210(as indicated by the thicker border and mark 620). Alternatively, a usermay perform a drag-and-select operation to select a group of clips,perform a series of keystrokes, or some other appropriate operations toselect multiple clips. As shown, this selection operation has caused achange in the graphical representation of the candidate audition clip610. This selection (or de-selection) may be indicated in various ways,such as a change in background, a change in color, etc.

FIG. 51 illustrates a second stage of user interaction after the userhas selected multiple candidate audition clips in some embodiments. Asshown, this selection operation has caused the candidate audition clips610, 1810, 2010, and 2210 in the audition display area 510 to besurrounded by a selection box 5110. The selection box indicates thateach clip inside the box will be played in succession when viewing apreview playback of the composite presentation including the candidateaudition clips. The audition display area 510 has been updated to showthat the clip 610 is now active (as indicated by the thicker border andmark 620). In addition, the composite-target clip 630 has been updatedin the composite display area 340 to reflect the selection of adifferent clip 610 in the candidate audition clip set shown in theaudition display area 510. The preview display area 330 has also beenupdated to reflect the content of the newly-selected composite-targetclip 630.

In this stage, a user activates the preview playback function by using acursor operation to select a preview playback item 5120. As shown inFIG. 51, a user may position the cursor 380 at a location over thepreview playback item 5120 of the GUI 300, before performing aleft-cursor click operation to activate the preview playback operation.As shown, this activation operation has caused a change in the graphicalrepresentation of the preview playback item 5120. This activation may beindicated in various ways, such as a change in background, a change incolor, etc. Although the activation has been performed using acursor-control operation, different embodiments may allow a user toactivate preview playback in different ways (e.g., though a pull-down orpop-up menu command, a series of keystrokes, etc.).

In this example, the preview playback has been invoked using a “loop”feature. In this way, the playback continuously plays the portion of thecomposite presentation that is within the range along the timeline 360defined by the audition range selector 530. Thus, during the loopedplayback, the playback continuously loops from one point 5130 along thetimeline to another point 5140 along the timeline. Although the rangeselector is shown as starting at the playhead 390 location, the rangeselector 530 is not necessarily associated with the position of theplayhead 390. In any case, in the example shown in FIG. 51, the previewplayback shown in the preview display area 330 includes thecomposite-target clip 630, and covers the range defined by the auditionrange selector 530.

FIG. 51 further illustrates breakout section 5150 that indicates theiterative cycling of the selected candidate audition clips in thepreview display area 330. Specifically, this breakout section shows thecontent of the preview display area 330 as the preview playbacktransitions through the clips 610, 1810, 2010, and 2210 in the set ofcandidate audition clips. In some embodiments, upon reaching the end ofthe range defined by the audition range selector 530, thecomposite-target clip is automatically updated to reflect the next clipincluded in the selection box 5110. In other embodiments, thecomposite-target clip (and associated preview display, etc.) may not beupdated automatically, and may require that a user issue a “next clip”command using a GUI selection item or other appropriate method. Inaddition to updating the composite-target clip, the audition displayarea 510 may be updated to indicate which clip is now active in thepreview playback. Thus, the thicker border and mark 620 may move fromclip to clip in the audition display area 510 as different clips areincluded in the preview playback.

The preview playback will continue in this manner, continually selectingthe next candidate audition clip in the selection box 5110 to beincluded in the playback preview display shown in the preview displayarea 330 until the user halts the playback operation (e.g., byde-activating the preview playback item 5120). Thus, the previewplayback will continuously cycle through the selected candidate auditionclips, repeating the playback described above in reference to breakoutsection 5150, until stopped.

Although the example above used cursor control operations to select thecandidate audition clips to preview, and to initiate the previewplayback, different embodiments may perform these operations usingdifferent methods (e.g., pull-down or pop-up menu commands, a series ofkeystrokes, etc.).

FIGS. 52-53 illustrate another example of playback preview. In theexample of FIGS. 52-53, the audition feature has been invoked and a setof candidate audition clips has been created and selected. The GUI 300in the example of FIGS. 52-53 is the same GUI 300 described above inreference to FIGS. 3-32, and 36-51. Also, to illustrate the example ofperforming preview playback through the use of cursor operations, FIGS.52-53 explain two different stages of a user's interaction with the GUI300.

FIG. 52 illustrates a first stage that is after a user has selectedmultiple candidate audition clips 610, 1810, 2010, and 2210 from a setof candidate audition clips displayed in the audition display area 510.The invocation of the audition feature may have been performed in asimilar manner to that described above in reference to FIGS. 3-6. Inaddition, the candidate audition clip set may have been created asdescribed above in reference to FIGS. 16-22. Furthermore, a user mayhave selected multiple candidate audition clips from the auditiondisplay area as described above in reference to FIG. 50. The first stageshown in FIG. 52 follows the state of the GUI 300 as described above inreference to FIGS. 50-51. As shown in FIG. 52, in this stage, a userde-selects a candidate audition clip 2010 from the set of selectedcandidate audition clips displayed in the audition display area 510.

As shown in FIG. 52, a user may position the cursor 380 at a particularlocation of the GUI 300, before performing a left-cursor click operationto de-select the candidate audition clip 2010 (as indicated by thethicker border). Alternatively, a user may perform a series ofkeystrokes, or some other appropriate operations to de-select one ormore clips.

FIG. 53 illustrates a second stage of user interaction after the userhas de-selected a candidate audition clip in some embodiments. As shown,this de-selection operation has caused the representation of thecandidate audition clip 2010 in the audition display area 510 to beupdated to show that the clip 2010 is no longer selected (as indicatedby the change in fill pattern and background color). Differentembodiments may indicate this de-selection in different ways. Someembodiments may indicate the de-selection differently depending on theposition of the de-selected clip within the group of clips in theaudition display area 510. For instance, when the de-selected clip isthe first or last clip in the selected group, the selection box 5110 maybe resized such that it does not enclose the de-selected clip.

FIG. 53 further illustrates breakout section 5310 that indicates theiterative cycling of the selected candidate audition clips in thepreview display area 330. Specifically, this breakout section shows thecontent of the preview display area 330 as the preview playbacktransitions through the clips 610, 1810, and 2210 (skipping de-selectedclip 2010) in the set of candidate audition clips. In some embodiments,upon reaching the end of the range defined by the audition rangeselector 530, the composite-target clip is automatically updated toreflect the next clip included in the selection box 5110. In addition,the audition display area 510 may be updated to indicate which clip isnow active in the preview playback. Thus, the thicker border and mark620 may move from clip to clip in the audition display area 510 asdifferent clips are included in the preview playback.

The preview playback will continue in this manner, continually selectingthe next candidate audition clip in the selection box 5110 to beincluded in the playback preview display shown in the preview displayarea 330 until the user halts the playback operation (e.g., byde-activating the preview playback item 5120). Thus, the previewplayback will continuously cycle through the selected candidate auditionclips, repeating the playback described above in reference to breakoutsection 5310, until stopped.

Although the example above used cursor control operations to de-selectthe candidate audition clips to preview, and to initiate the previewplayback, different embodiments may perform these operations usingdifferent methods (e.g., pull-down or pop-up menu commands, a series ofkeystrokes, etc.). In addition, although the examples of FIGS. 50-53showed particular candidate audition clips in a set being designated asactive, a user may select various combinations of one or more candidateaudition clips in a set to be active during playback, as desired. Thisselection may be performed before playback begins, during playback, orat some other appropriate time.

IV. Playback Preview Processes, Data Structures, and Software Modules

The following section describes the processes, data structures, andsoftware modules used by some embodiments to perform playback preview.First, sub-section IV.A describes a conceptual process used in someembodiments to implement the preview playback feature. Next, sub-sectionIV.B describes a conceptual process and data structures used to generatea preview playlist for preview playback. Finally, sub-section IV.Cdescribes the software modules used by some embodiments to performplayback preview and other functions of the media editing application.

A. Audition Clip Playback Preview Process

The following sub-section describes the processes and data structuresused in some embodiments to perform playback preview. One of ordinaryskill will recognize that the process is a conceptual representation ofthe actual implementation. Different embodiments may use differentoperations (or a different order of operations) to allow playbackpreview.

FIG. 54 illustrates a conceptual process 5400 used by some embodimentsto perform the preview playback operation of some embodiments. Theprocess 5400 will be described in reference to FIG. 34 and FIGS. 50-53.The process 5400 begins when it receives a selection of an audition clipset. The selection of an audition clip set may direct the process toretrieve a candidate audition clip set data element 3455, as describedabove in reference to FIG. 34.

Next, the process receives (at 5410) a selection of a playback range.This range selection may be achieved by positioning and/or adjusting theaudition range selector 530 as described above in reference to FIG. 51.In some cases, no range is selected. In those cases, a default range maybe determined by the media editing application, or the entire projectmay be played in the playback preview. In some instances, the defaultrange may be selected to match the length and location of thecomposite-target clip, with pre and post-roll segments as describedabove in reference to FIG. 8.

After receiving (at 5410) a selection of a playback range, the processreceives (at 5420) a selection of clips from the active audition clipset and creates a list of the selected clips. The selection (and/orde-selection) of one or more clips was described above in reference toFIGS. 50 and 52. In some embodiments, the process may create the list ofclips using attributes retrieved from the candidate audition clip setdata element 3450, as shown in FIG. 34. In some embodiments, the list ofclips may have a format similar to the track data element 3420 describedabove in reference to FIG. 34.

One of ordinary skill will recognize that the operations of process 5400are conceptual and may not necessarily be performed in the order shown.For instance, in some embodiments, the preview playback process mayreceive a selection of clip(s) before receiving a selection of aplayback range. In addition, the process used to implement playbackpreview may not be invoked when an audition clip set is selected.Instead, the process may begin when, for example, a playback command isreceived, as described above in reference to FIG. 51. Furthermore,different specific operations may be performed in different embodiments.Also, the process may not be performed as one continuous series ofoperations. Furthermore, the process could be implemented using severalsub-processes, or as part of a larger macro-process.

Once the process has received (at 5420) a selection of one or more clipsfrom the audition clip set and created a list of the selected clips, theprocess receives (at 5430) a playback command directing the process tobegin display of the preview playback. One way of selecting the playbackcommand was described above in reference to FIG. 51.

After receiving (at 5430) the playback command, the process selects (at5440) the next clip in the list of clips created at 5420. This operationwas described above in reference to FIG. 51, where the first clip 610 inthe set of selected clips was selected, and thus included in the previewplayback.

Next, the process plays (at 5450) the project over the selected playbackrange with the selected clip included in the preview playback. Thisoperation was described above in reference to FIG. 51, where theselected clip 610 was included in the playback (as composite-target clip630) of the project over the range defined by the audition rangeselector 530.

After playback (at 5450) of the project over the selected range, theprocess determines (at 5460) whether there are other clips in the listof clips. When the process determines that there are other clips,operations 5440-5460 are repeated until all clips in the list have beensuccessively included in the preview playback. These operations weredescribed above in reference to FIGS. 51 and 53.

When the process determines (at 5460) that there are no other clips inthe list of clips, the process determines (at 5470) whether to endplayback. In some embodiments, the determination to end playback isbased on receiving a user command as described above. In otherembodiments, playback may be ended after one iteration through the listof clips (i.e., non-looped playback).

When the process determines (at 5470) that playback will not be ended,the process selects (at 5480) the first clip in the list of selectedclips and repeats the operations 5450-5480 until the process determines(at 5470) that playback will be ended. When the process determines thatplayback will be ended, the process stops (at 5490) the preview playbackand the process ends.

B. Generating a Playback Preview Playlist

The following sub-section describes the process and data structures usedin some embodiments to generate a playback preview playlist (i.e.,playback of a project with committed, preview and/or audition clipsincluded), for a project that includes preview clips, audition clips,and/or committed clips. One of ordinary skill will recognize that thesedata structures and process are conceptual representations of the actualimplementation. Different embodiments may use different structures or adifferent process to allow playback preview.

FIG. 55 illustrates some embodiments that include a timeline 5500, and acorresponding preview playback frame set 5550 and/or segment table 5590used to perform playback preview. Specifically, this figure illustratesseveral data structures of an example timeline 5500, a segment table5590 generated from the example timeline data and a preview playbackframe set 5550 that may be generated from the example timeline 5500and/or the segment table 5590. As shown in the figure, the timeline 5500includes several tracks 5505-5515 for displaying and manipulating mediaclips that are part of the media project. This figure furtherillustrates the preview playback frameset 5550 that allows a user toview a display of the project with any preview clips included in thedisplayed media presentation.

The tracks 5505-5515 include data corresponding to a set of clips5520-5540 that have been placed in the tracks 5505-5515. As shown, inaddition to committed clips, each track may also include preview clips.Furthermore, each track may include multiple non-overlapping committedclips and multiple non-overlapping preview clips (not shown). Althoughthe timeline is represented as using increments of one frame, someembodiments may use other increments. For example, some timelines mayuse a time increment (i.e., 30 ms).

The preview playback frame set 5550 represents one particular conceptualdata structure that may be used to display a preview for the user thatshows how the composite presentation would appear if the preview clipswere committed to the project. The preview playback frameset 5550generated from the timeline 5500 includes multiple frames, where someframes are committed frames 5560, 5575, and 5580 from individualcommitted clips, and some frames are preview frames 5565 and 5570 fromthe preview clip. Although each frame in the preview playback frame set5550 have been represented as coming from a single clip, in someembodiments one or more frames may be composite frames that aregenerated by combining one or more clip frames.

The segment table 5590 represents another conceptual data structure thatmay be used to display a preview for the user or to generate the previewplayback frame set 5550. The segment table 5590 of some embodiments mayinclude information such as a reference to all clips 5592 in thetimeline, a frame number or other location indicator 5594, a clip typeattribute 5596, and/or a point type indicator 5598. In some embodimentsthe segment table 5590 may be used to optimize the playback operation byallowing the media application to perform preview playback moreefficiently.

The generation of the segment table 5590 and the preview playback frameset 5550 from the timeline data 5500 will now be described by referenceto process 5600, as illustrated in FIG. 56. One of ordinary skill willrecognize that process 5600 is a conceptual representation of theoperations used to generate a segment table. The specific operations ofthe process may not be performed in the exact order described, ordifferent specific operations may be used in different embodiments.Also, the process may not be performed as one continuous series ofoperations. Furthermore, the process could be implemented using severalsub-processes, or as part of a larger macro-process.

As shown, the process 5600 begins at 5610 by retrieving timeline data.In this example, the timeline data 5500 will be used. Next, the processwalks (at 5620) the timeline in order to generate a segment tableindicating clip start and stop points and identify overlapping sectionsof clips. Thus, for the example timeline 5500, the timeline starts atframe 1. The process then progresses through the timeline and identifiesany frames where any clips start or stop.

For the example timeline 5500, there is only one clip 5520 identified asstarting or ending at frame 1, so the first clip 5520 is added to thesegment table 5590 as a clip start point. In addition, several clipproperties may also be added to the table (e.g., track number, whetherthe clip includes audio data or video data, etc.). In addition towalking (at 5620) the timeline to generate the segment table, theprocess identifies overlapping sections of clips in order to definesegments. This identification of overlapping sections may be achieved,for instance, by determining when consecutive entries in the segmenttable 5590 are “start” points.

In some embodiments, the segment table includes information related tothe overlapping sections of clips (not shown). In addition, someembodiments may remove entries from the table when the associated datawill be superseded by other data. For example, as the preview clip 5540completely overlaps the committed clip 5525 in track 2 5510, the entriesin the segment table corresponding to clip 2 5525 may simply be removedfrom the table.

The process 5600 proceeds along the timeline 5500 until it determinesthat preview clip 1 5540 begins at frame 5. This begin point is added tothe segment table 5590 as the next clip start or end point. The processproceeds in this manner, identifying clip start and end points andadding them to the segment table 5590 until it reaches the end of thetimeline 5500 at the start of frame 17 in this example.

In some embodiments, the tracks are arranged hierarchically in thetimeline, so that a clip on a track with a higher number supersedes thedisplay of a track with a lower number. In some of these embodiments,frames on different tracks may also be composited (e.g., when performinga transition between clips on different tracks, the clips may overlapfor at least a portion of the transition). The preview playback frameset 5550 shows the resulting frames under the hierarchical arrangementof one embodiment.

In some of these embodiments, the superseding clip is a smaller sizethan the superseded clip and thus, the superseding clip is onlydisplayed over a portion of the superseded clip. In other embodiments,the superseding clip is at least as large as the superseded clip, andthus displaces the entire superseded clip or image in the display. Theexample playback frame set 5550 shows that the preview clip 5540 in thisexample supersedes the overlapping clip 5520 on a lower-numbered track5505 in frames 5 and 6 5565. In contrast, the committed clip 5530 in ahigher-numbered track 5515 supersedes the overlapping preview clip 5540in frames 11 and 12 5575. In addition the preview clip 5540 supersedesthe committed clip 5525 in the same track 5510.

As in the above example, the preview clips may follow the hierarchy ofthe committed clips, and thus be superseded by committed clips onhigher-numbered tracks, but may supersede clips on lower orequal-numbered tracks. In other embodiments, preview clips may supersedecommitted clips regardless of whether the preview clip is placed in ahigher-numbered track than the committed clip.

In some embodiments, when audio clips overlap, the clips may be “mixed”instead of a particular clip superseding another. In these embodiments,the mixing operation may be controlled by the user, or may be performedas a default mix (e.g., playing all audio tracks at equal relativevolume). In other embodiments, the audio clips on higher-numbered tracksmay supersede the audio clips on lower-numbered tracks. In some of theseembodiments, a user may elect audio clips to supersede other audioclips, while in other embodiments, the election may be a defaultelection. The preview audio clips of some embodiments will supersede anycommitted audio clips in the same track, but be mixed with or supersedeclips in other tracks as described above.

After walking (at 5620) the timeline to generate the segment table andidentify overlapping sections of clips in order to define segments, theprocess uses (at 5630) the table to direct a fetcher to identify andretrieve individual frames (e.g., from a content storage element). Insome embodiments, the table may omit superseded clips, or make otherappropriate modifications (e.g., by adding attributes to each clip entryin the table) such that the fetcher is able to efficiently identify andretrieve frames.

After using (at 5630) the fetcher to identify and retrieve frames, theprocess of some embodiments sends (at 5640) frames retrieved by thefetcher to the preview display. The fetcher in this example retrievesthe frames shown in the preview playback frame set 5550. After sending(at 5640) the frames to the preview display, the process ends.

In some embodiments that include audition clip sets (not shown), theprocess 5600 may be iteratively repeated to generate a playlist for eachaudition clip in the set of candidate audition clips. In some of theseembodiments, the timeline data structure 5500 may also be iterativelygenerated based on each candidate audition clip in a set. In other ofthese embodiments, the segment table may be initially generated withmultiple audition clips associated with a particular clip reference(e.g., in cases where the audition clips all have the same timeline inand out points).

In addition, as described above, in some cases the playback may includeonly a section of the project (e.g., the length of an audition clip pluspre and post-roll segments). In these cases, the segment table orpreview playback frame set may be generated for only that portion of theproject that has been selected for playback.

Although the preview playback function has been described above usingnumerous specific details, one of ordinary skill in the art willrecognize that the function could be implemented in different wayswithout departing from the spirit of the invention. For instance, someembodiments scan the timeline and generate a list of frames forplayback. As another example, different embodiments may assign aparticular priority to the clips in a track, such that any overlappingsections of clips are resolved by removing (or omitting) the sectionfrom the clip with a lower priority.

In addition, many of the examples given above are by reference to avideo compositing application that composites video clips and provides apreview display area for displaying the composite presentation. Thepreview tool may also be used for other media compositing applicationssuch as audio mixers. In the case of an audio mixer, for example, thefeedback would not be provided to the user through a preview displayarea, but rather through another mechanism (e.g., by playing an audiopreview using a PC's sound card and speakers).

C. Software Architecture

In some embodiments, the processes described above are implemented assoftware running on a particular machine, such as a computer or ahandheld device, or stored in a computer readable medium. FIG. 57conceptually illustrates the software architecture of an application5700 of some embodiments for presenting menus such as those described inthe preceding sections. In some embodiments, the application is astand-alone application or is integrated into another application (forinstance, application 5700 might be a portion of a video-editingapplication), while in other embodiments the application might beimplemented within an operating system. Furthermore, in someembodiments, the application is provided as part of a server-based(e.g., web-based) solution. In some such embodiments, the application isprovided via a thin client. That is, the application runs on a serverwhile a user interacts with the application via a separate clientmachine remote from the server (e.g., via a browser on the clientmachine). In other such embodiments, the application is provided via athick client. That is, the application is distributed from the server tothe client machine and runs on the client machine.

Media editing application 5700 includes a user interface interactionmodule 5715 for sending data to and receiving data from a user, anediting module 5720 for receiving and processing edits to a compositeproject, a preview generator 5725 for creating a composite presentationbased on stored project data, a rendering engine 5730 used to generateimage data for storage or display, and a set of storages 5735 forstoring data used by the application 5700. The set of storages 5735includes storages for project data 5740, content data 5745, as well asother data 5750 (e.g., data about media objects in a video scene). Thesub-components of the preview generator 5725 of some embodiments areshown in breakout section 5755. As shown, the preview generator includesa preview processor 5760, a section identifier 5765, and a fetcher 5770.

The operating system 5710 of some embodiments includes a cursorcontroller driver 5775 that allows the application 5700 to receive datafrom a cursor control device, a keyboard driver 5780 for that allows theapplication 5700 to receive data from a keyboard, an audio playbackmodule 5785 for processing audio data that will be supplied to an audiodevice (e.g., a soundcard and speakers), and a display module 5790 forprocessing video data that will be supplied to a display device (e.g., amonitor).

A user interacts with items in the user interface of the media editingapplication 5700 via input devices (not shown) such as a cursorcontroller (e.g., a mouse, touchpad, trackpad, etc.) and/or keyboard.The input from these devices is processed by the cursor controllerdriver 5775 and/or the keyboard driver 5780, and passed to the userinterface interaction module 5715.

The present application describes a graphical user interface thatprovides users with numerous ways to perform different sets ofoperations and functionalities. In some embodiments, these operationsand functionalities are performed based on different commands that arereceived from users through different input devices (e.g., keyboard,trackpad, touchpad, mouse, etc). For example, the present applicationdescribes the use of a cursor in the graphical user interface to control(e.g., select, move) objects in the graphical user interface. However,in some embodiments, objects in the graphical user interface can also becontrolled or manipulated through other controls, such as touch control.In some embodiments, touch control is implemented through an inputdevice that can detect the presence and location of touch on a displayof the device. An example of such a device is a touch screen device. Insome embodiments, with touch control, a user can directly manipulateobjects by interacting with the graphical user interface that isdisplayed on the display of the touch screen device. For instance, auser can select a particular object in the graphical user interface bysimply touching that particular object on the display of the touchscreen device. As such, when touch control is utilized, a cursor may noteven be provided for enabling selection of an object of a graphical userinterface in some embodiments. However, when a cursor is provided in agraphical user interface, touch control can be used to control thecursor in some embodiments.

The user interface interaction module 5715 translates the data from thedrivers 5775 and 5780 into the user's desired effect on the mediaediting application 5700. For example, when the user edits content in adisplay area of the media editing application, the user interfaceinteraction module 5715 may translate these edits into instructions thatare processed by the editing module 5720 in some embodiments. In otherembodiments, the edits may be applied directly to project data 5740, orother data stored by the application 5700 in the set of storages 5735.An example of the user editing content is if the user trims a media clipin a display area of the media editing application 5700. The userinterface interaction module 5715 also receives input data that istranslated as instructions to preview visual content in a previewdisplay area (for example, if a user clicks a play control while editinga media project). This information is passed to preview generator 5725through the editing module 5720 in some embodiments.

Editing module 5720 of some embodiments processes edit instructionsreceived from the user interface interaction module 5715 and dataretrieved from the set of data storages 5735. Editing module 5720 mayalso create and/or update data stored within the set of data storages5735 based on received instructions that affect the project data 5740,content 5745, or other stored data 5750. Furthermore, the editing module5720 may also send data and/or instructions to the rendering engine 5730of some embodiments. Editing module 5720 may perform, for example, someor all of the operations of processes 3300 and/or 5400 in someembodiments. The editing module 5720 includes an audition module 5722 insome embodiments.

The audition module 5722 is a module that places a particular clip in aparticular audition set at a particular location in the compositedisplay area according to various scenarios such as those describedabove by reference to FIGS. 3-6, FIGS. 9-11, FIGS. 16-22, FIGS. 23-25,FIGS. 26-29, FIGS. 36-41, and/or FIGS. 45-49. In some embodiments, theselection of a UI item can invoke an audition session in which theaudition module creates, modifies, and/or deletes a set of auditionclips. An audition UI item (such as a radio button, series ofkeystrokes, etc.), the various audition display areas mentioned above(such as an audition pane, audition window, drop-down list, etc.), andthe audition module (e.g., audition module 5722) collectively form anaudition tool that provides the audition feature of some embodiments. Inthis audition tool, the UI item is the item that invokes or ends asession for creating, modifying, or deleting sets of audition clips.Other than this UI item (or series of keystrokes, hotkey selection,etc.), some embodiments provide other schemes for starting an auditionsession, for example through a cursor selection of an audition clip(e.g., by right-clicking or control-clicking on a preview audition clipor committed clip with an associated audition set, clicking a committedclip's marker that indicates an associated audition set, etc.). Inaddition to performing audition functions using the audition module5722, the editing module 5720 may send instructions and/or data to thepreview generator 5725 of some embodiments.

Preview generator 5725 of some embodiments generates a preview based oninstructions received from the editing module 5720 and/or the userinterface interaction module 5715 and project data stored in storage5740, content stored in storage 5745, and/or other data stored instorage 5750. In some embodiments, preview generator 5725 also generatesa preview window (through the user interface interaction module 5715)after generating the preview, and manages the movement of the previewwindow. In some of these embodiments, the preview generator 5725 mayalso provide content to the user interface interaction module 5715 fordisplay. The preview generator 5725 may perform some or all ofoperations of the processes 5400 and/or 5600 in some embodiments.

The operation of the preview generator 5725 will be further described inreference to breakout section 5755. As shown, the preview generator ofsome embodiments includes a preview processor 5760 that may be used tocommunicate with the editing module 5720, send and receive data to andfrom the user interface interaction module 5715 and/or the set of datastorages 5735. In addition, the preview processor 5760 may be used tosend and receive data to and from the section identifier 5765 and/or thefetcher 5770. In some embodiments, the preview processor 5760 sendstimeline data to the section identifier 5765, which generates a table orother appropriate set of data. The generated table or set of data may besimilar to the segment table 5590 or the preview playback frame set 5450described above in reference to FIG. 55.

In some embodiments, the preview processor 5760 may supply the set ofdata (e.g., a segment table or frame set) generated by the sectionidentifier 5765 to the fetcher 5770. In some embodiments, audio data maybe passed directly to the user interface interaction module, while videodata is processed through the fetcher 5770. In other embodiments, thepreview processor 5760 may supply both audio and video data to the userinterface interaction module 5715. If project data, content, and/orother data are edited, that modified data is passed to the previewgenerator 5725 so that a new preview can be generated.

Fetcher 5770 of some embodiments retrieves frames of video data from theset of data storages 5735 based on data provided by the previewprocessor 5760. In some embodiments, the fetcher 5770 may also receivedata from the editing module 5720 (either directly, or through thepreview processor 5760). The data received by the fetcher 5770 may takethe form of a table or list of frames (e.g., segment table 5590 orpreview playback frame set 5550 described above in reference to FIG. 55.In addition to processing video frames through the fetcher 5770, someembodiments may use the fetcher to retrieve and send audio data.

Rendering engine 5730 enables the storage or output of audio and videofrom the media editing application 5700. For example, rendering engine5730 uses data about media objects in a video scene to render the videoscene from the particular location, direction, etc. defined by a cameraobject. As such, the rendering engine receives, in some embodiments,data from the editing module 5720 so that a preview can be displayed. Inother embodiments (not shown), the rendering engine 5730 may receivedata from the preview generator 5725 in order to generate a previewdisplay. Data from the rendering engine 5730 (e.g., audio and video dataof a video scene, preview data, etc.) is passed to the display module5790 and/or the audio playback module 5785. The audio playback moduleenables audio playback from the media editing application 5700 on anaudio device (e.g., a set of speakers or headphones). Display module5790 enables the display of the media editing application 5700 on adisplay device (e.g., a CRT monitor, LCD screen, etc.). Alternatively,data may be passed from the rendering engine 5730 to the set of storages5735 for later playback.

While many of the features have been described as being performed by onemodule (e.g., the UI interaction module 5715 or preview generator 5725),one of ordinary skill would recognize that a particular operation mightbe split up into multiple modules, and the performance of one featuremight even require multiple modules in some embodiments. For instance,in some embodiments, the audition module 5722 may be a separate module(or modules) from the editing module 5720.

Furthermore, although the application 5700 and its features have beendescribed using several specific embodiments, other embodiments mightimplement the application or its features using different resources orby placing the various modules in different specific locations. Forinstance, in some embodiments the application is a standaloneapplication that includes all the functionality and data access neededto run the application on a particular user device.

V. Conceptual Media Editing Process Using the Audition Feature

FIG. 58 conceptually illustrates a process 5800 used to receive anddisplay a modification to a project and commit the modification to thecomposite media presentation. In some embodiments, the process 5800could be implemented using the software modules and storages describedabove in reference to FIG. 57. As shown, the process 5800 begins at 5810by receiving a modification to a project.

The modification may include adding a preview clip, an audition clip, acommitted clip, modifying an existing clip (e.g., by applying aparticular edit style, moving a clip along the timeline, etc.), or othermodification to the project. In some embodiments, the preview and/oraudition modifications are not permanently stored with the project dataand may be stored in RAM, or other appropriate short-term storage whilethe preview edit session is still active. After receiving (at 5810) amodification, the process continues by determining (at 5820) whether todisplay a preview that includes the preview modification. In some cases,the determination may be based on user input, a default determination,or some other appropriate method.

In any case, when the process determines (at 5820) that the preview isto be displayed, the process continues by generating (at 5830) a previewto include the preview modifications. Preview playback and thegeneration of such a preview playlist was described in reference toFIGS. 50-56 above. The process next displays (at 5840) a preview of themodified project. After displaying (at 5840) the modified project, orafter determining (at 5820) not to display a preview, the processcontinues by determining (at 5850) whether to commit the preview and/oraudition edits to the project. If so, the process overwrites (at 5860)the composite project definition. Committed clip edits cause thecomposite project definition to be overwritten in some embodiments. Whenthe process determines (at 5850) that the preview and/or auditionmodifications will not be committed to the project, or after overwriting(at 5860) the composite project definition, the process determines (at5870) whether there are other modifications. When the process determines(at 5870) that there are further modifications, the process repeats theoperations 5810-5870 until the process determines (at 5870) that thereare no other modifications. When determining (at 5870) that there are noother preview modifications, the process ends.

In addition to those operations shown in process 5800, the media editingprocess of some embodiments further includes operations such ascompositing a media project's video data, rendering the mediapresentation to a file, and encoding the file into various media formats(e.g., MPEG-2, DivX, etc.). One of ordinary skill in the art willrecognize that various different operations may be used to prepare mediapresentations for playback on various different devices.

VI. Process for Defining a Media Editing Application

FIG. 59 conceptually illustrates a process 5900 of some embodiments fordefining and storing a computer readable medium that stores a computerprogram. In some embodiments, the computer readable medium is adistributable CD-ROM. Specifically, process 5900 illustrates theoperations used to define several of the elements shown in GUI 300. Asshown, process 5900 begins by defining (at 5910) a composite displayarea for displaying graphical representations of a set of media clips.Composite display area 340 is one example of such a display area.

The process then defines (at 5920) a display area for displaying acomposite presentation that is created by compositing the set of mediaclips. For instance, preview display area 330 is such a display area.Next, the process defines (at 5930) an audition user interface tool forinvoking the audition feature. The audition selection item 310 is anexample of such a user interface tool.

After defining (at 5930) the audition user interface tool for invokingthe audition feature, the process defines (at 5940) clip representationsfor a set of committed clips and alternative representations for a setof preview clips. GUI 300 of FIG. 6 shows one example of suchrepresentations.

The process then defines (at 5950) an audition display area fordisplaying a set of graphical representations that represent a set ofcandidate media clips that are candidates for placement at a particularlocation in the composite display area. FIG. 6 illustrates one exampleof such audition display area 510.

After defining (at 5950) an audition display area for displaying a setof graphical representations that represent a set of candidate mediaclips that are candidates for placement at a particular location in thecomposite display area, process 5900 defines (at 5960) rules andprocesses for performing audition edit operations. FIGS. 3-32 and 36-49illustrate several examples of such audition edit operations and theaccompanying discussion describes the rules and processes used toimplement those operations.

After defining (at 5960) rules and processes for performing auditionedit operations, process 5900 defines (at 5970) rules for generating adisplay for playback in the display area. Several examples of theserules and processes were described above in reference to FIGS. 50-54.

The process then defines (at 5980) other media editing tools andfunctionalities. Examples of such editing tools may include zoom, colorenhancement, blemish removal, audio mixing, etc. In addition, variousother media editing functionalities may be defined. Such functionalitiesmay include library functions, format conversion functions, etc. Theprocess defines these additional tools in order to create a mediaediting application that has many additional features to the featuresdescribed above.

A more detailed view of a media editing application with theseadditional features is illustrated in FIG. 60. Specifically, this figureshows a media editing application with these additional tools. FIG. 60illustrates a list of video and/or audio clips 6010, video editing tools6020, and video displays 6030. The list of clips 6010 includes videoclips along with metadata (e.g., timecode information) about the videoclips. In some embodiments, the list of video clips is the list of videoclips in a particular sequence of video clips, and the metadataspecifies in and out points, durations, etc. for the video clips.

The video editing tools 6020 include tools that allow a user tographically set in and out points for video clips (in other words, wherein the final product a specific clip or part of a clip will be shown).For instance, the video editing tools 6020 include a number of timelinesthat can be used to modify the temporal sequence of the video frame andto synchronize audio tracks with video tracks (e.g., in order to addmusic over a video clip). In some embodiments, video editing tools 6020also give users the ability to edit in effects or perform other videoediting functions.

Video displays 6030 allow a user to watch multiple video clips at once,thereby enabling easier selection of in and out points for the videoclips. The screen shot 6000 illustrates a few of many different editingtools that a video editing application of some embodiments may have toedit digital video.

In some cases, some or all of the video clips that are displayed in thelist of clips 6010, played in displays 6030, and edited by a user withvideo editing tools 6020, are video clips of real-world objects (e.g.,people, landscapes, etc.) filmed by a camera and include real-worldaudio (e.g., conversations, real-world noises, etc.) recorded by acamera, microphone, etc. In some cases, some or all of the video clipsare computer-generated animations or include computer generatedanimations (e.g., animated objects, computer-generated effects, etc.).

The process next stores (at 5990) the defined media editing application(i.e., the defined modules, UI items, etc.) on a computer readablestorage medium. As mentioned above, in some embodiments the computerreadable storage medium is a distributable CD-ROM. In some embodiments,the medium is one or more of a solid-state device, a hard disk, aCD-ROM, or other non-volatile computer readable storage medium.

One of ordinary skill in the art will recognize that the variouselements defined by process 5900 are not exhaustive of the modules,rules, processes, and UI items that could be defined and stored on acomputer readable storage medium for a media editing applicationincorporating some embodiments of the invention. In addition, theprocess 5900 is a conceptual process, and the actual implementations mayvary. For example, different embodiments may define the various elementsin a different order, may define several elements in one operation, maydecompose the definition of a single element into multiple operations,etc. In addition, the process 5900 may be implemented as severalsub-processes or combined with other operations within a macro-process.

Many of the examples given above have been related to a video editingapplication. One of ordinary skill in the art will realize that theinvention can be implemented in other media editing applications such asaudio editing applications. FIG. 61 describes one such example audioediting application with an audition feature of some embodiments.

FIG. 61 illustrates an example usage of the audition feature where auser has added an audio clip as an audition clip using a GUI 6100 ofsome embodiments. The GUI 6100 of FIG. 61 includes (1) an auditionselection item 6110, (2) a media library 6120, (3) an audio controlwindow 6130, and (4) a composite display area 6140 with several tracks(e.g., audio track 6150) that span a timeline. As shown, an audio clip6160 has been added from the media library 6120. The user may haveinvoked the audition feature and selected the audio clip for addition ina similar manner to that described above in FIGS. 3-6, for example. Asshown, the audio clip 6160 has been added to audio track 6150 as apreview clip 6170. As in the case of video clips, when no particularlocation has been selected to insert an audio clip, the clip may beinserted on a newly-created track at the playhead location.

In addition, the GUI 6000 may include different control buttons 6040 toenable various functions of the media editing application. For instance,the editing functions described above in Section II may be invoked usingsuch control buttons. In addition to the GUI 6000, other embodiments mayuse various specific arrangements and displays of the functions providedby the media editing application.

VII. Computer System

Many of the above-described processes and modules are implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as “computerreadable medium” or “machine readable medium”). When these instructionsare executed by one or more computational element(s), such as processorsor other computational elements like application-specific ICs (“ASIC”)and field-programmable gate arrays (“FPGA”), they cause thecomputational element(s) to perform the actions indicated in theinstructions. Computer is meant in its broadest sense, and can includeany electronic device with a processor. Examples of computer readablemedia include, but are not limited to, CD-ROMs, flash drives, RAM chips,hard drives, EPROMs, etc. The computer readable media does not includecarrier waves and/or electronic signals passing wirelessly or over wiredconnections.

In this specification, the term “software” is meant in its broadestsense. It can include firmware residing in read-only memory orapplications stored in magnetic storage which can be read into memoryfor processing by a processor. Also, in some embodiments, multiplesoftware inventions can be implemented as sub-parts of a larger programwhile remaining distinct software inventions. In some embodiments,multiple software inventions can also be implemented as separateprograms. Finally, any combination of separate programs that togetherimplement a software invention described here is within the scope of theinvention. In some embodiments, the software programs when installed tooperate on one or more computer systems define one or more specificmachine implementations that execute and perform the operations of thesoftware programs.

FIG. 62 illustrates a computer system 6200 with which some embodimentsof the invention are implemented. For example, the system describedabove in reference to FIG. 57 may be at least partially implementedusing sets of instructions that are run on the computer system 6200. Asanother example, the processes described in reference to FIGS. 33 and 54may be at least partially implemented using sets of instructions thatare run on the computer system 6200.

Such a computer system includes various types of computer readablemediums and interfaces for various other types of computer readablemediums. Computer system 6200 includes a bus 6210, a processor 6220, asystem memory 6230, a read-only memory (ROM) 6240, a permanent storagedevice 6250, a graphics processing unit (“GPU”) 6260, input devices6270, output devices 6280, and a network connection 6290. The componentsof the computer system 6200 are electronic devices that automaticallyperform operations based on digital and/or analog input signals. Thevarious examples of user interfaces shown in FIGS. 3-32, and 36-53 maybe at least partially implemented using sets of instructions that arerun on the computer system 6200 and displayed using the output devices6280.

One of ordinary skill in the art will recognize that the computer system6200 may be embodied in other specific forms without deviating from thespirit of the invention. For instance, the computer system may beimplemented using various specific devices either alone or incombination. For example, a local PC may include the input devices 6270and output devices 6280, while a remote PC may include the other devices6210-6260, with the local PC connected to the remote PC through anetwork that the local PC accesses through its network connection 6290(where the remote PC is also connected to the network through a networkconnection).

The bus 6210 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of thecomputer system 6200. For instance, the bus 6210 communicativelyconnects the processor 6220 with the system memory 6230, the ROM 6240,and the permanent storage device 6250. In some cases, the bus 6210 mayinclude wireless and/or optical communication pathways in addition to orin place of wired connections. For example, the input devices 6270and/or output devices 6280 may be coupled to the system 6200 using awireless local area network (W-LAN) connection, Bluetooth®, or someother wireless connection protocol or system.

From these various memory units, the processor 6220 retrievesinstructions to execute and data to process in order to execute theprocesses of the invention. In some embodiments the processor includesan FPGA, an ASIC, or various other electronic components for executinginstructions.

The ROM 6240 stores static data and instructions that are needed by theprocessor 6220 and other modules of the computer system. The permanentstorage device 6250, on the other hand, is a read-and-write memorydevice. This device is a non-volatile memory unit that storesinstructions and data even when the computer system 6200 is off. Someembodiments of the invention use a mass-storage device (such as amagnetic or optical disk and its corresponding disk drive) as thepermanent storage device 6250.

Other embodiments use a removable storage device (such as a floppy disk,flash drive, or CD-ROM) as the permanent storage device. Like thepermanent storage device 6250, the system memory 6230 is aread-and-write memory device. However, unlike storage device 6250, thesystem memory 6230 is a volatile read-and-write memory, such as a randomaccess memory (RAM). The system memory stores some of the instructionsand data that the processor needs at runtime. In some embodiments, thesets of instructions and/or data used to implement the invention'sprocesses are stored in the system memory 6230, the permanent storagedevice 6250, and/or the read-only memory 6240. For example, the variousmemory units include instructions for processing multimedia items inaccordance with some embodiments. From these various memory units, theprocessor 6220 retrieves instructions to execute and data to process inorder to execute the processes of some embodiments.

In addition, the bus 6210 connects to the GPU 6260. The GPU of someembodiments performs various graphics processing functions. Thesefunctions may include display functions, rendering, compositing, and/orother functions related to the processing or display of graphical data.

The bus 6210 also connects to the input devices 6270 and output devices6280. The input devices 6270 enable the user to communicate informationand select commands to the computer system. The input devices includealphanumeric keyboards and pointing devices (also called “cursor controldevices”). The input devices also include audio input devices (e.g.,microphones, MIDI musical instruments, etc.) and video input devices(e.g., video cameras, still cameras, optical scanning devices, etc.).The output devices 6280 include printers, electronic display devicesthat display still or moving images, and electronic audio devices thatplay audio generated by the computer system. For instance, these displaydevices may display a GUI. The display devices include devices such ascathode ray tubes (“CRT”), liquid crystal displays (“LCD”), plasmadisplay panels (“PDP”), surface-conduction electron-emitter displays(alternatively referred to as a “surface electron display” or “SED”),etc. The audio devices include a PC's sound card and speakers, a speakeron a cellular phone, a Bluetooth® earpiece, etc. Some or all of theseoutput devices may be wirelessly or optically connected to the computersystem.

Finally, as shown in FIG. 62, bus 6210 also couples computer 6200 to anetwork 6290 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), an Intranet, or a networkof networks, such as the Internet. For example, the computer 6200 may becoupled to a web server (network 6290) so that a web browser executingon the computer 6200 can interact with the web server as a userinteracts with a GUI that operates in the web browser.

As mentioned above, the computer system 6200 may include one or more ofa variety of different computer-readable media (alternatively referredto as computer-readable storage media, machine-readable media, ormachine-readable storage media). Some examples of such computer-readablemedia include RAM, ROM, read-only compact discs (CD-ROM), recordablecompact discs (CD-R), rewritable compact discs (CD-RW), read-onlydigital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a varietyof recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.),flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.),magnetic and/or solid state hard drives, ZIP® disks, read-only andrecordable blu-ray discs, ultra density optical discs, any other opticalor magnetic media, and floppy disks. The computer-readable media maystore a computer program that is executable by at least one processorand includes sets of instructions for performing various operations.Examples of hardware devices configured to store and execute sets ofinstructions include, but are not limited to, ASICs, FPGAs, programmablelogic devices (“PLD”), ROM, and RAM devices. Examples of computerprograms or computer code include machine code, such as produced by acompiler, and files including higher-level code that are executed by acomputer, an electronic component, and/or a microprocessor using aninterpreter.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of this specification, the termsdisplay or displaying means displaying on an electronic device. As usingin this specification and any claims of this application, the terms“computer readable medium” and “computer readable media” are entirelyrestricted to tangible, physical objects that store information in aform that is readable by a computer. These terms exclude any wirelesssignals, wired download signals, and any other ephemeral signals.

It should be recognized by one of ordinary skill in the art that any orall of the components of computer system 6200 may be used in conjunctionwith the invention. Moreover, one of ordinary skill in the art willappreciate that any other system configuration may also be used inconjunction with the invention or components of the invention.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. For example, several embodiments weredescribed above by reference to particular media editing applicationswith particular features and components (e.g., particular compositedisplay areas). However, one of ordinary skill will realize that otherembodiments might be implemented with other types of media editingapplications with other types of features and components (e.g., othertypes of composite display areas).

Moreover, while the examples shown illustrate certain individual modulesas separate blocks (e.g., the preview generator 5725, the renderingengine 5730, etc.), one of ordinary skill in the art would recognizethat some embodiments may combine these modules into a single functionalblock or element. One of ordinary skill in the art would also recognizethat some embodiments may divide a particular module into multiplemodules.

One of ordinary skill in the art will realize that, while the inventionhas been described with reference to numerous specific details, theinvention can be embodied in other specific forms without departing fromthe spirit of the invention. For instance, alternate embodiments may beimplemented by using a generic processor to implement the videoprocessing functions instead of using a GPU. One of ordinary skill inthe art would understand that the invention is not to be limited by theforegoing illustrative details, but rather is to be defined by theappended claims.

The invention claimed is:
 1. A device comprising: at least one processorfor executing sets of instructions; and a memory that stores a programfor creating a composite media presentation, the program comprising:sets of instructions for providing a composite display area fordisplaying a set of graphical representations that represent a set ofcommitted media clips that are committed to be a part of the compositepresentation; sets of instructions for providing an audition tool forcreating an audition set associated with a particular location in thecomposite display area, the audition set comprising a plurality of mediaclips associated with the particular location, wherein only one mediaclip of the audition set is active in the composite presentation andinactive media clips are candidates for inclusion in the compositepresentation at the particular location; sets of instructions forproviding a range selector for selecting, in the composite display area,a portion of the composite presentation that includes the particularlocation associated with the audition set; and sets of instructions forproviding a preview display area for automatically playing back themedia clips within the selected portion of the composite presentation ina loop such that the selected portion is played back a number of timesbased on a number of different media clips in the audition set, eachplayback using a different one of the media clips in the audition set.2. The device of claim 1, wherein the audition tool comprises anaudition selection item for invoking an audition session.
 3. The deviceof claim 1, wherein the program further comprises sets of instructionsfor providing an indicator for indicating a subset of media clips in theaudition set for playback in the composite presentation.
 4. The deviceof claim 1, wherein the program further comprises sets of instructionsfor providing an indicator for indicating which media clip of theaudition set is active during playback.
 5. The device of claim 1,wherein the audition tool is further for creating, at the particularlocation in the composite display area, a graphical indication thatidentifies the particular location as a location in the compositedisplay area with which an audition set is associated.
 6. The device ofclaim 5, wherein the graphical indication comprises a symbolsuperimposed over a particular graphical representation of the auditionset.
 7. The device of claim 6, wherein the graphical representation ofthe audition set has a first visible appearance and a graphicalrepresentation of a committed media clip has a second visibleappearance.
 8. The device of claim 7, wherein the first and secondvisible appearances are different colors.
 9. The device of claim 7,wherein the first and second visible appearances are different sizes.10. A non-transitory machine readable medium storing a program whichwhen executed by at least one processing unit creates a composite mediapresentation, the program comprising sets of instructions for: providinga composite display area for displaying a set of graphicalrepresentations that represent a set of committed media clips that arecommitted to be a part of a composite presentation; providing anaudition tool for creating an audition set associated with a particularlocation in the composite display area, the audition set comprising aplurality of media clips associated with the particular location,wherein only one media clip of the audition set is active in thecomposite presentation and inactive media clips are candidates forinclusion in the composite presentation at the particular location;providing a range selector for selecting, in the composite display area,a portion of the composite presentation that includes the particularlocation associated with the audition set; and providing a previewdisplay area for automatically playing back the media clips within theselected portion of the composite presentation in a loop such that theselected portion is played back a number of times based on a number ofdifferent media clips in the audition set, each playback using adifferent one of the media clips in the audition set.
 11. Thenon-transitory machine readable medium of claim 10, wherein the programfurther comprises a set of instructions for providing an auditionselection item for invoking an audition session.
 12. The non-transitorymachine readable medium of claim 11, wherein the audition selection itemis further for ending an audition session.
 13. The non-transitorymachine readable medium of claim 11, wherein the audition selection itemis further for defining a particular media clip as a candidate forplacement at a particular location in the composite display area beforeadding the particular media clip to the composite display area.
 14. Thenon-transitory machine readable medium of claim 13, wherein theparticular media clip is selected from a media library using a drag anddrop operation to select and drag the media clip to an audition displayarea.
 15. The non-transitory machine readable medium of claim 11,wherein the audition tool is further for placing at least one clip in aparticular audition set for the particular location, when a user invokesthe audition tool using the audition selection item, selects theparticular location in the composite display area, and selects at leastone clip from a media library to add to the particular audition set. 16.The non-transitory machine readable medium of claim 10, wherein theprogram further comprises a set of instructions for providing anaudition display area for managing and displaying the audition set. 17.The non-transitory machine readable medium of claim 16, wherein theaudition tool is further for placing at least one clip in a particularaudition set for the particular location, when a user (1) invokes theaudition tool using an audition selection item, (2) selects theparticular location in the composite display area, and (3) selects atleast one clip from a media library to add to the particular auditionset by moving the at least one clip to the audition display area. 18.The non-transitory machine readable medium of claim 10, wherein theaudition tool is further for exchanging at least one candidate mediaclip associated with the particular location with the active media clip.19. The non-transitory machine readable medium of claim 10, wherein theaudition tool is further for sequentially exchanging each candidatemedia clip associated with the particular location with the active clip.20. A method for providing a media-editing application for creatingcomposite media presentations, the method comprising: providing acomposite display area for displaying a set of graphical representationsthat represent a set of committed media clips that are committed to be apart of a composite presentation; providing an audition tool forcreating an audition set associated with a particular location in thecomposite display area, the audition set comprising a plurality of mediaclips associated with the particular location, wherein only one mediaclip of the audition set is active in the composite presentation andinactive media clips are candidates for inclusion in the compositepresentation at the particular location; providing a range selector forselecting, in the composite display area, a portion of the compositepresentation that includes the particular location associated with theaudition set; and providing a preview display area for automaticallyplaying back the media clips within the selected portion of thecomposite presentation in a loop such that the selected portion isplayed back a number of times based on a number of different media clipsin the audition set, each playback using a different one of the mediaclips in the audition set.
 21. The method of claim 20, wherein theaudition tool is further for creating a graphical indicator at theparticular location in the composite display area to identify thecandidate media clips as associated with the particular location. 22.The method of claim 21, wherein the graphical indicator for a committedmedia clip is different from the graphical indicator for the candidatemedia clips.
 23. The method of claim 21, wherein the graphical indicatorfor the audition set comprises a symbol placed over a particulargraphical representation of the audition set.
 24. The method of claim21, wherein the graphical indicator for the audition set comprises amarker over at least a section of a particular graphical representationof the audition set.
 25. The method of claim 20, wherein the compositedisplay area comprises a plurality of different locations representing aplurality of different times in the composite presentation.
 26. Themethod of claim 25, wherein the composite display area further comprisesa timeline for organizing the set of graphical representations thatrepresent the set of committed media clips, wherein different locationscorrespond to different points along the timeline.
 27. The method ofclaim 20, wherein the plurality of media clips in the compositepresentation comprises at least one audio clip and at least one videoclip.
 28. The method of claim 20 further comprising providing anaudition commit item for removing a particular media clip from thecandidate media clips and adding the particular media clip to the set ofcommitted media clips that are committed for inclusion in the compositepresentation.